Ich habe ein System, das Plugins akzeptiert, um Benutzer zuzulassenHinzufügen von Funktionen zu einem Managementsystem. Das Plugin ist im Prinzip nur eine Zip-Datei mit einem bestimmten Format (zB Datei x in diesem Verzeichnis, y in diesem Verzeichnis). Momentan benutze ich das maven-assembly-plugin plugin um die zip zu erstellen.
Das Problem ist, dass es schwierig ist, alle meine Plugins synchron zu halten und andere dazu zu bringen, ein Plugin zu erstellen, da sie die korrekte assembly.xml benötigen
Daher habe ich versucht, einen benutzerdefinierten Verpackungstyp zu erstellen, damit Entwickler ein solches Plugin erstellen können:
<groupId>com.example</groupId>
<artifactId>example</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>plugin</packaging> //not a standard type
Das funktioniert meistens, aber das Hässliche ist, dass jedes Plugin immer von bestimmten APIs im Kernsystem abhängt. Daher haben sie alle grundsätzlich die gleichen Abhängigkeiten.
Ist es möglich, dass ein Mojo Abhängigkeiten in einen Benutzer des Mojo einbringt? Dies scheint zu sagen, dass es nicht http://maven.40175.n5.nabble.com/How-to-inject-dependencies-from-a-mojo-td83025.html
Antworten:
0 für die Antwort № 1Beantwortet in Kommentaren:
Ich stieß auf eine ziemlich offensichtliche und einfacheLösung. Ich mache einen "Pom" Projekt, das die Abhängigkeiten enthält, und fragen Sie den Entwickler schließt diesen Pom als Abhängigkeit ein. Das löst mein Problem seit ich kann die Abhängigkeiten an einer Stelle zentralisieren und jedes "plugin" kann transitiv zu den Kern-API-Abhängigkeiten gelangen, wenn sie wollen. Einfach Peasy. - mlathe Mar 27 "13 um 22:12