gpt4 book ai didi

java - 根据阶段,使用 Maven 从 jar 中包含/排除文件

转载 作者:行者123 更新时间:2023-11-30 04:09:46 25 4
gpt4 key购买 nike

我有一个

src/main/resources/log4j.xml

当我执行 mvn assembly:assembly 时我希望将其包含在 jar 中的文件但当我执行 mvn package 时被排除。我怎样才能做到这一点?

我已经在这里阅读了几个 Maven 文档和问题,但到目前为止我还无法做到这一点。我尝试了很多方法,但都失败了。

基本上,我在 <build><plugins>我的 pom 部分:

<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>

然后在 <build>部分

<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>src/main/resources/log4j.xml</exclude>
</excludes>
</resource>
</resources>

但我到处都包含 log4j.xml。

最佳答案

您放置在 <exclude> 中的任何内容或<include>元素被视为相对于 <directory>指定的。因此,按照您目前拥有的方式,Maven 将尝试排除资源 ${basedir}/src/main/resources/src/main/resources/log4j.xml这可能不存在。尝试像这样设置资源元素:

<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/log4j.xml</exclude>
</excludes>
</resource>

作为旁注,assembly:assembly目标已弃用。根据 maven-assembly-plugin docs ,使用single相反,目标。

关于java - 根据阶段,使用 Maven 从 jar 中包含/排除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19912943/

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