У меня есть проект со следующей концептуальной структурой:Возможно ли Maven для сборки исполняемых JAR с различными конфигурациями?
-- Core project: Contains the main() function
---- Feature A
---- Feature B
---- Feature C
---- etc.
Я ищу способ, чтобы сказать Maven следующее:
mvn package core--with--featureA--and--featureC
Этот пример создаст исполняемый файл JAR, начиная с Core main
, а также функции A и C также упакованы/собраны, но не имеют функции B и других.
Хотя JAR запускается, метод main
должен быть в состоянии знать, какие установлены особенности и самонастройки их всех, например, для .:
main() {
for(Runnable featureStarter : FeatureList.getFeatures()) { // Gets all features assembled by maven, which are now present in runtime
featureStarter.run(); // Starts each feature
}
}
или, более деревенское/жестко закодированы пример (менее предпочтительнее):
main() {
if(isInstalled("FeatureA"))
FeatureA.start();
if(isInstalled("FeatureB"))
FeatureB.start();
if(isInstalled("FeatureC"))
FeatureC.start();
}
Это возможно?
Спасибо!
Вы ищете банки, которые работают в различных средах или только одной баночке, которая будет обнаружить недостающую зависимость и отключить определенную функцию – Narrim
У Maven есть проекты, а затем модули, поэтому вы можете создать 2 модуля выпуска, которые зависят от базового проекта. Каждый из них будет собираться по-разному, это зависит от вашей основной функции, чтобы проверить отсутствие классов в функции и отключить или включить функцию. – Narrim
Это не имеет ничего общего с окружающей средой, это больше похоже на зависимость. Я думаю, что мы можем видеть функции как зависимости. Я не знаю, было бы лучшим способом добиться этого с помощью maven? – PedroD