Java MaVeN构建在大多数情况下需要错误的文件
我使用Java MaVeN构建在大多数情况下需要错误的文件,java,build,maven-3,Java,Build,Maven 3,我使用org.apache.maven.pluginsmaven汇编插件version2.2-beta-5构建一个具有依赖项的jar。我包含的其中一个JAR包含一个persistence.xml文件。我构建的项目还有一个persistence.xml文件。这座建筑物完工得很好 然而,问题是,大多数时候错误的persistence.xml文件都以依赖关系结束在jar中。如果我在不做任何更改的情况下重新构建(有时甚至多次),那么正确的persistence.xml就会出现 我寻找了一个解决方案,但找
org.apache.maven.plugins
maven汇编插件
version2.2-beta-5
构建一个具有依赖项的jar。我包含的其中一个JAR包含一个persistence.xml
文件。我构建的项目还有一个persistence.xml
文件。这座建筑物完工得很好
然而,问题是,大多数时候错误的persistence.xml
文件都以依赖关系结束在jar中。如果我在不做任何更改的情况下重新构建(有时甚至多次),那么正确的persistence.xml
就会出现
我寻找了一个解决方案,但找不到一个有效的例子。如何在我的pom.xml
中定义我希望我的项目的persistence.xml
文件包含依赖项,而不是包含在jar中的文件
我的MaVeN版本是ApacheMaven 3.6.3,所有构建都是使用
mvn clean package完成的
在不查看项目的情况下,无法对构建可执行文件所花费的时间发表评论。
默认情况下,Maven将文件从${project.basedir}/src/main/resources位置复制到可执行jar文件。因此,如果fat jar中没有包含persistence.xml,请检查文件夹结构并检查xml文件的位置。使用maven shade插件而不是mavenassembly插件将
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>
org.apache.maven.plugins
它总是在我的胖罐子里,但不总是来自我的${project.basedir}
。它(大多数时候)来自我的胖罐子里的罐子。因为不总是这样,我假设复制是并行进行的。因此,只有当其中一个复制线程中存在延迟时,才会使用正确的persistence.xml
。这就是我要寻找的。我运行了十几次,每次都在执行着色jar。