gpt4 book ai didi

java - Maven:从子模块中排除资源

转载 作者:行者123 更新时间:2023-12-01 11:00:05 25 4
gpt4 key购买 nike

如何从子模块中删除资源?

场景:

在 common.jar 中,我们有要排除的 xml 文件。但common jar作为依赖项添加到module1.jar和module2.jar中。 module1 和 module2 有使用公共(public) jar 中的 xml 文件的测试用例。

所以,我想在测试用例运行后排除 xml 文件。

那么,有没有办法从父pom.xml中的子模块中删除xml?或任何其他方法从公共(public) jar 中删除 xml。

父pom.xml:

<modules>
<module>common</module>
<module>module1</module>
<module>module2</module>
<module>module3</module>
</modules>

最佳答案

您可以使用 excludes 排除将资源打包到生成的 jar 中。 maven-resources-plugin 的属性.

例如,要排除文件 src/main/resources/path/to/file.xml,您可以在 common 的 POM 中包含以下内容:

<build>
...
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>path/to/file.xml</exclude>
</excludes>
</resource>
...
</resources>
...
</build>
<小时/>

但是,如果您想在构建后修改 common Artifact ,这是不可能的:当 Maven 构建 module1module2 时,它已经打包并安装了common

在这种情况下,您应该将相应的 XML 文件移动到 module1module2 中作为测试资源,即在 src/test/resources 中>。通过添加这些 XML 文件作为测试资源,您可以确保它们在测试运行时出现在类路径中,并且不会打包在最终的 jar 中。

关于java - Maven:从子模块中排除资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33412695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com