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汇编插件
version
2.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。