我有一个多模块 Maven 项目。默认情况下,当我构建一个 web 模块时,它所依赖的所有 JAR 类型的兄弟模块都被复制到 WEB-INF/lib 文件夹中。我希望将兄弟模块的输出放在 WEB-INF/classes 文件夹中而不打包到 JAR 中。
更普遍的问题可能是:如何将兄弟模块的配置文件保留在 JAR 之外,以便在部署后可以轻松地对其进行编辑?
如果有人感兴趣,我找到了这个解决方案。我有完全相同的问题。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<packagingExcludes>WEB-INF/lib/MYPACKAGE_TO_EXCLUDE.jar</packagingExcludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack-MYPACKAGE_TO_EXCLUDE</id>
<phase>compile</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>MYPACKAGE_TO_EXCLUDE</artifactId>
<version>${project.version}</version>
<type>jar</type>
<outputDirectory>${project.build.directory}/classes
</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>