gpt4 book ai didi

java - Maven 包仅包含第二次运行的文件

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

我正在创建一个非 Java Maven Artifact 。在 pom.xml 中,我解决了一些依赖项,然后使用 exec 插件运行自定义脚本。有些文件是在目录中创建的,但是 Maven 在将它们打包到 jar 中时看不到它们。

当我运行 mvn package 两次时,第二次运行确实包含了 jar 中的资源文件。

有什么想法为什么会发生这种情况吗?该脚本在 compile 阶段运行,因此当 package 阶段创建 jar 时,文件已经创建。

<小时/>

这是我的 pom.xml 配置的相关(希望)部分:

<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.4.0</version>
<executions>
<execution>
<id>build-plugin</id>
<phase>compile</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>bash</executable>
<arguments>
<argument>build_plugin.sh</argument>
<argument>${workspace}</argument>
<argument>${plugin}</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>

<resources>
<resource>
<directory>${project.basedir}/${outputPath}</directory>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>target/**</exclude>
</excludes>
</resource>
</resources>

所有变量和路径都是有效的,在第二次运行时我得到了一个包含预期内容的 jar 。但不是在第一次。

最佳答案

在maven默认生命周期中,资源的处理发生在编译之前请参阅https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference

您要做的是更改“exec-maven-plugin”的构建阶段,使用“generate-sources”而不是“compile”

<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.4.0</version>
<executions>
<execution>
<id>build-plugin</id>
<phase>generate-sources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>bash</executable>
<arguments>
<argument>build_plugin.sh</argument>
<argument>${workspace}</argument>
<argument>${plugin}</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>

<resources>
<resource>
<directory>${project.basedir}/${outputPath}</directory>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>target/**</exclude>
</excludes>
</resource>
</resources>

关于java - Maven 包仅包含第二次运行的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36740961/

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