Как исключить родительский каталог веб-приложений из дочерней сборки
У меня есть родительский модуль maven runtime
и он содержит webApp
каталог для хранения веб-материалов.(HTML, JS и т. д.). В моем дочернем модуле employee
также следуйте той же структуре. Так что, когда я собираю дочерний проект JAR с зависимостями, он содержит оба webapp
содержимое переопределяет друг друга. Моё требование - исключить родительский каталог веб-приложений из моего дочернего (сотрудника) фляги с зависимостями. Я использую плагин Maven Shade для связывания фляги с зависимостями. Пожалуйста, дайте мне знать, как этого добиться.
Родительский файл pom (время выполнения)
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.sample.myproject</groupId>
<artifactId>base</artifactId>
<version>3.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>runtime</artifactId>
<name>Runtime Engine</name>
<packaging>jar</packaging>
<dependencies>
<dependency>
//dependencies goes here
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/config</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/webapp</directory>
</resource>
</resources>
//plugins goes here (maven-jar-plugin)
</build>
</project>
Детский пом (сотрудник)
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.sample.myproject</groupId>
<artifactId>base</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>employee</artifactId>
<name>Employee Engine</name>
<packaging>jar</packaging>
<dependencies>
<dependency>
//dependencies goes here
<dependency>
<groupId>com.sample.myproject</groupId>
<artifactId>runtime</artifactId>
<version>3.0.0-SNAPSHOT</version>
</dependency>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/config</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/webapp</directory>
</resource>
</resources>
//plugins goes here (maven-jar-plugin)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<!-- Run shade goal on package phase -->
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<!-- add Main-Class to manifest file -->
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.sample.myproject.employee.AppStarter</mainClass>
</transformer>
</transformers>
<filters>
<filter>
<artifact>*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
<exclude>META-INF/LICENSE</exclude>
<exclude>LICENSE</exclude>
</excludes>
</filter>
</filters>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>jar-with-dependencies</shadedClassifierName>
</configuration>
</execution>
</executions>
</plugin>
</build>
</project>