У меня есть две различные задачи сложной сборки, которые должны выполняться последовательно maven. Например, создание военных файлов, библиотеки и ...
Насколько я знаю, мне нужно разделить эти задачи на отдельные файлы maven maven. При таком подходе каждый файл pom несет определенную ответственность, я могу держать их как можно проще и, прежде всего, в результате некоторых технических проблем, я должен это сделать.
Я установил общие зависимости между этими двумя файлами в родительском файле pom, чтобы уменьшить дублирование.
В этом случае create-jar.xml и create-war.xml являются задачами, а parent.xml содержит общие зависимости.
parent.xmlИспользование нескольких файлов pom для создания проекта
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>main</groupId>
<artifactId>main</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.13</version>
</dependency>
</dependencies>
</project>
создать-jar.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>main</artifactId>
<groupId>main</groupId>
<version>1.0</version>
<relativePath>parent.xml</relativePath>
</parent>
<groupId>create</groupId>
<artifactId>create</artifactId>
<version>1.2-SNAPSHOT</version>
<packaging>jar</packaging>
</project>
создать-war.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>main</artifactId>
<groupId>main</groupId>
<version>1.0</version>
<relativePath>parent.xml</relativePath>
</parent>
<groupId>create-war</groupId>
<artifactId>create-war</artifactId>
<version>1.1-SNAPSHOT</version>
<packaging>jar</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
</configuration>
</plugin>
</plugins>
</build>
</project>
W Мне нужно позвонить mvn установить обоих файлов pom по одной команде. Орден действительно важен для меня, поскольку баннер создания должен работать до создания войны.
Существует два подхода.
First inheritance, используя create-jar.xml в качестве прямого родителя create-war.xml, поэтому, запустив create-war, вызывается create-jar.
Другое решение: Состав путем запуска create-jar.xml из create-war.xml. Я не знаю, как это сделать. Но я думаю, что maven-invoker или maven-antRun плагины могут быть полезны. Буду рад дать мне руку.
Что я должен знать, что вам нужна сборка нескольких модулей – Jens
Просьба уточнить, должна ли ваша WAR включать JAR. Если ваш сценарий на самом деле, «создайте JAR, тогда постройте WAR, содержащую JAR» - вы, скорее всего, не первый в этом сценарии. –
я бы попытаться добавить это к вашему создать-war.xml ' основной создать ' –