Можем ли мы построить конкретный ребенок из родительского Pom в Maven.Можно использовать файл, в котором упоминается имя модулей, которые будут включены.Maven Создайте определенные дочерние элементы из родителя
ответ
Для этого вы можете использовать профиль maven.
<project>
...
<profiles>
<profile>
<id>build1</id>
<activation>
<property>build1</property>
</activation>
<modules>
<module>module1</module>
</modules>
</profile>
<profile>
<id>build2</id>
<activation>
<file>
<exists>test2.file</exists>
</file>
</activation>
<modules>
<module>module2</module>
<module>module3</module>
</modules>
</profile>
</profiles>
</project>
Вы можете активировать профиль, используя определенные условия, например. текущие или отсутствующие файлы, существующие свойства и т. д.
Более подробную информацию о профиле Maven: http://maven.apache.org/guides/introduction/introduction-to-profiles.html
Предположим, ваш корневой проект имеет 3 модулей: module-A
, module-B
и module-C
.
Выполните приведенные ниже команды из корневого проекта.
- Если вы хотите построить
module-C
, запустите:mvn clean install –pl module-C
- В случае
module-C
зависит отmodule-A
, запустите:mvn clean install –pl module-C –am
строитьmodule-A
иmodule-C
Если в корневом каталоге вашего проекта, может просто определить, что в командной строке Maven вот так:
mvn -pl ModuleYouWouldLikeToBuild package
Отрывок из командной строки справки:
-pl,--projects <arg> Comma-delimited list of specified
reactor projects to build instead
of all projects. A project can be
specified by [groupId]:artifactId
or by its relative path.
Если этот модуль, что вы хотите построить используется в другом модуле вы можете решить, чтобы Maven проанализировать, какой из них и строить, что в зависимости от модуля также с помощью:
mvn -pl Module --also-make-dependents
или короткая версия:
mvn -pl Module -amd
Если у вас есть модули, которые используются в модуле вы вызвали построить вас ч п также добавить:
mvn -pl Module --also-make
или короткая версия:
mvn -pl Module -am
Никогда не использовать профили для включения/исключения модулей лучше использовать команду --projects для таких вещей. – khmarbaise