こんにちは、複数のモジュールを含む Maven プロジェクトがあります。4 つのモジュールのうち、2 つは Web です。これが構造です。
MyProject
|
|__ api
|
|__ commons
|
|__ web_child
|
|__ web_main
web_mainモジュールはメインのモジュールであり、web_childモジュールも含めることができます。
web_child モジュール構造は
web_child
|
|__ src/main/java //java action classes and all
|__ src/main/resources
| |__ struts-default.xml
|
|__ WEB-INF
|__ JSP Pages
web_main モジュール構造は
web_main
|
|__ src/main/java //java action classes and all
|__ src/main/resources
| |__ struts.xml
|
|__ WEB-INF
|__ JSP Pages
モジュールは両方ともwarです。
web-mainはすべてのモジュールに依存します。web-childは最初の 2 つのモジュール (api と commons) に依存します。
struts.xml には、struts-default.xmlを含めています。
pom.xmlの web-childモジュールでは、WAR プラグインと JAR プラグインを使用しています。web-childモジュールは正常に動作しています。JAR プラグインは、モジュールの JAR を作成するために使用されます。しかし問題は、 JARに i を含めたくないということです。src/main/resources
web-child
これがモジュールpom.xmlの私のJARプラグイン です
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>core</classifier>
<excludes>
<exclude>src/main/resources</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
これにより、JAR が作成されます。この JAR は、web-main
モジュールの依存関係として追加しています。
web-main pom.xml 依存関係
<dependency>
<groupId>${project.parent.groupId}</groupId>
<artifactId>${project.parent.artifactId}-child</artifactId>
<version>${project.parent.version}</version>
<classifier>core</classifier>
</dependency>
<dependency>
<groupId>${project.parent.groupId}</groupId>
<artifactId>${project.parent.artifactId}-child</artifactId>
<version>${project.parent.version}</version>
<type>war</type>
</dependency>
1 つ目は JAR を取得し、2 つ目は war を取得します。したがって、web-child の主要なリソースはすべて WEB-INF クラスに含まれます。そして、WEB-INF/lib/web-child.jar 内のファイルと競合しています! ファイル。
では、src/main/resources を JAR から削除して、main-web でその JAR を取得するにはどうすればよいでしょうか?
注:WARプラグイン内で次のことを試しました
<attachClasses>true</attachClasses>
<classesClassifier>core</classesClassifier>
<packagingExcludes>src/main/resources</packagingExcludes>