Not logged in.

Contribution Details

Type Bachelor's Thesis
Scope Discipline-based scholarship
Title Investigating Plugin Usage in Open Source Maven Projects
Organization Unit
Authors
  • Marc Zwimpfer
Supervisors
  • Harald Gall
  • Sebastian Proksch
Language
  • English
Institution University of Zurich
Faculty Faculty of Business, Economics and Informatics
Date 2019
Abstract Text Continuous Integration (CI) has become a widely-used software-engineering practice, in which the automated software build plays a central role. Software build systems, like Maven, execute this task by automatically generating executable software from source code and hence, play a crucial role in the whole CI process. Studies have shown that the configuration of such systems grows with increasing age and size of the underlying project. However, little research was conducted on the actual content of their configurations. In this thesis, we examine in-depth how Maven plugins are configured in practice by analysing configurations of Open-Source projects using Maven. In Maven, all functionalities are provided by plugins, and thus they form the core of a every project. Analysing how plugins are used in Maven is important to gain further understanding of the usage of Maven and build systems in general. Despite the importance of plugins, we find that plugin management only makes up a small portion of the complete Maven configuration. However, we show that plugins and their configurations are strongly influenced by inheritance in Maven projects. With this thesis, we provide further insight into how developers actually use build systems. We show that the standard configuration of Maven regarding plugins suffices in most cases and thus, the concept of Maven - "Convention over Configuration" - is also successfully realized in the plugin configuration of Maven. Moreover, we propose a method which encodes Maven configurations into vectors which can be used for various analysis without information loss.
Zusammenfassung Continuous Integration (CI) wurde zu einem wichtigen Prozess in the Software-Entwicklung, wobei der automatische "Build" der Software aus dem Quellcode eine zentrale Aufgabe einnimmt. Build-Management-Werkzeuge, wie zum Beispiel Maven, übernehmen diese Aufgabe und sind daher eng verknüpft mit CI. Einige Untersuchungen zeigten bereits, dass die Konfiguration solcher Werkzeuge zusammen mit einem grösser- oder älterwerdenden Projekt wächst. Trotzdem wurden bisher der tatsächliche Inhalt solcher Konfigurationen noch nicht ausführlich untersucht. In dieser Arbeit analysieren wir wie Maven Plugins eingesetzt und konfiguriert werden indem wir die Konfigurationen von Open-Source Projekten, welche Maven benutzen, untersuchen. In Maven spielen Plugins eine wichtige Rolle, da sie für alle Aufgaben während einem Build-Prozess zuständig sind. Obwohl Plugins eine solche zentrale Rolle einnehmen, nimmt die Plugin-Konfiguration nur einen kleinen Platz in der gesamten Maven Konfiguration ein. Zudem wird die Art des Gebrauchs von Plugins und deren Konfigurationen stark von der Vererbung in Maven Projekten beeinflusst. Mit dieser Arbeit geben wir neue Einblicke in die Art, wie Software-Entwickler im echten Leben Maven brauchen. Wir zeigen, dass die Standard-Konfiguration von Maven meistens ausreichend ist. Zudem entwickeln wir eine Methode, welche es erlaubt, die Konfigurationen von Maven ohne Informationsverlust in Vektoren umzuwandeln, welche dann für viele verschiedene Analysen gebraucht werden können.
PDF File Download
Export BibTeX