大多数情况下,MaVeN 构建会采用错误的文件
MaVeN build takes, most of the times, wrong file
我使用 org.apache.maven.plugins
maven-assembly-plugin
版本 2.2-beta-5
构建一个 jar-with-dependencies。我包含的其中一个 jar 包含一个 persistence.xml
文件。我构建的项目也有一个 persistence.xml
文件。构建完成良好。
然而,问题是大多数时候错误的 persistence.xml
文件最终出现在 jar-with-dependencies 中。如果我在不做任何更改的情况下重建(有时还会重建几次),那么就会出现正确的 persistence.xml
。
我搜索了解决方案,但找不到有效的示例。我如何在我的 pom.xml
中定义我想要我的项目的 persistence.xml
文件在 jar-with-dependencies 中而不是包含的 jar 中的文件?
我的 MaVeN 版本是 Apache Maven 3.6.3,所有构建都是使用 mvn clean package
.
完成的
无法在不查看您的项目的情况下评论构建可执行文件所花费的时间。
默认情况下,Maven 将文件从 ${project.basedir}/src/main/resources 位置复制到可执行 jar 文件。因此,如果 persistence.xml 未包含在 fat jar 中,请检查您的文件夹结构并检查 xml 文件的位置。
使用 maven-shade-plugin 而不是 mavenassembly-plugin 从依赖项中排除 persistence.xml
文件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>my:other:jar</artifact>
<excludes>
<exclude>persistence.xml</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
有关此方法的更多信息,请参阅 Apache Maven Shade Plugin documentation
我使用 org.apache.maven.plugins
maven-assembly-plugin
版本 2.2-beta-5
构建一个 jar-with-dependencies。我包含的其中一个 jar 包含一个 persistence.xml
文件。我构建的项目也有一个 persistence.xml
文件。构建完成良好。
然而,问题是大多数时候错误的 persistence.xml
文件最终出现在 jar-with-dependencies 中。如果我在不做任何更改的情况下重建(有时还会重建几次),那么就会出现正确的 persistence.xml
。
我搜索了解决方案,但找不到有效的示例。我如何在我的 pom.xml
中定义我想要我的项目的 persistence.xml
文件在 jar-with-dependencies 中而不是包含的 jar 中的文件?
我的 MaVeN 版本是 Apache Maven 3.6.3,所有构建都是使用 mvn clean package
.
无法在不查看您的项目的情况下评论构建可执行文件所花费的时间。 默认情况下,Maven 将文件从 ${project.basedir}/src/main/resources 位置复制到可执行 jar 文件。因此,如果 persistence.xml 未包含在 fat jar 中,请检查您的文件夹结构并检查 xml 文件的位置。
使用 maven-shade-plugin 而不是 mavenassembly-plugin 从依赖项中排除 persistence.xml
文件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>my:other:jar</artifact>
<excludes>
<exclude>persistence.xml</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
有关此方法的更多信息,请参阅 Apache Maven Shade Plugin documentation