Ich habe ein Projekt mit der folgenden konzeptionellen Struktur:Kann Maven ausführbare JARs mit unterschiedlichen Konfigurationen zusammenstellen?
-- Core project: Contains the main() function
---- Feature A
---- Feature B
---- Feature C
---- etc.
ich nach einem Weg suchen folgendes zu sagen maven:
mvn package core--with--featureA--and--featureC
Dieses Beispiel würde aus einer ausführbaren JAR-Datei erstellen Start die main
des Kerns, und Eigenschaften A und C auch verpackt/zusammengebaut, aber nicht Merkmal B und andere.
Während die JAR gestartet werden, wissen die main
Methode der Lage sein sollte, welche Funktionen sie installiert sind und Bootstrap alle, für zB .:
main() {
for(Runnable featureStarter : FeatureList.getFeatures()) { // Gets all features assembled by maven, which are now present in runtime
featureStarter.run(); // Starts each feature
}
}
oder ein rustikales/hartcodiert Beispiel (weniger bevorzugt):
main() {
if(isInstalled("FeatureA"))
FeatureA.start();
if(isInstalled("FeatureB"))
FeatureB.start();
if(isInstalled("FeatureC"))
FeatureC.start();
}
Ist das irgendwie möglich?
Danke!
Sie sind für Gläser suchen, die unter verschiedenen Umgebungen ausgeführt werden oder nur ein einziges Gefäß, das eine fehlende Abhängigkeit und deaktivieren Sie eine bestimmte Funktion erkennt – Narrim
Maven hat Projekte und dann Module..so können Sie 2 Release-Module erstellen, die vom Basisprojekt abhängen. Jeder würde anders zusammenstellen, es wäre Ihre Hauptfunktion, nach den fehlenden Klassen in einem Feature zu suchen und das Feature zu deaktivieren oder zu aktivieren. – Narrim
Es hat nichts mit der Umgebung zu tun, es ist mehr wie Abhängigkeit. Ich denke, wir können Features als Abhängigkeiten sehen. Ich weiß nicht, wäre es der beste Weg, dies mit Maven zu erreichen? – PedroD