嗨,我有一个包含多个模块的 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依赖于前两个(api & commons)模块。
在 struts.xml 我包括struts-default.xml。
在pom.xml的 web-child模块中,我使用的是 WAR 插件和 JAR 插件。和web-child模块工作正常。JAR 插件用于创建模块的 JAR。但问题是,我不想将i 包含在 JAR 中。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>
第一个得到 JAR,第二个得到战争。所以来自 web-child 的所有主要资源都将来自 WEB-INF 类。它与 WEB-INF/lib/web-child.jar 中的文件冲突!文件。
那么如何从 JAR 中删除 src/main/resources 并在 main-web 中获取该 JAR?
注意:我在 WAR 插件中尝试了以下内容
<attachClasses>true</attachClasses>
<classesClassifier>core</classesClassifier>
<packagingExcludes>src/main/resources</packagingExcludes>