4

我有一个多模块 Maven 项目。默认情况下,当我构建一个 web 模块时,它所依赖的所有 JAR 类型的兄弟模块都被复制到 WEB-INF/lib 文件夹中。我希望将兄弟模块的输出放在 WEB-INF/classes 文件夹中而不打包到 JAR 中。

更普遍的问题可能是:如何将兄弟模块的配置文件保留在 JAR 之外,以便在部署后可以轻松地对其进行编辑?

4

2 回答 2

2

您可以使用overlay,尽管这要求兄弟姐妹的类型是 war 而不是 jar。也有使用依赖插件解压jar,但它只会解压你本地仓库中的版本,而不是你刚刚打包的那个。

至于您的“更一般”的问题,jar 插件有excludes标记。

于 2009-03-11T15:09:37.823 回答
2

如果有人感兴趣,我找到了这个解决方案。我有完全相同的问题。

            <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>
于 2011-07-13T08:26:01.983 回答