Java 使用maven生成可运行jar时如何避免资源覆盖?

Java 使用maven生成可运行jar时如何避免资源覆盖?,java,maven,jar,Java,Maven,Jar,我有一个maven项目和一个包含一个资源文件(c3p0.xml)的jar,我将资源复制到src/main/resource文件夹中,并根据我的需求更改内容,以便使用它 但是在我运行mvn assembly:assembly命令之后,生成的包含资源内容的jar在src/main/resource中的依赖性jar不是我的内容如何处理它 My pom.xml的主要内容如下: <plugin> <!-- mvn assembly:assembly -->

我有一个maven项目和一个包含一个资源文件(c3p0.xml)的jar,我将资源复制到src/main/resource文件夹中,并根据我的需求更改内容,以便使用它

但是在我运行mvn assembly:assembly命令之后,生成的包含资源内容的jar在src/main/resource中的依赖性jar不是我的内容如何处理它

My pom.xml的主要内容如下:

<plugin>
            <!-- mvn assembly:assembly -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>com.fastcheck.RequestUrl</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>

org.apache.maven.plugins
maven汇编插件
2.4
带有依赖项的jar
com.fastcheck.RequestUrl

带有依赖项的jar组装机制使用您声明的maven依赖项,而不是来自您的资源目录中的依赖项。如果要使用较新版本的jar,请在.pom文件中声明较新版本作为依赖项。

您应该将maven程序集插件绑定到构建生命周期,如下所示:

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id> <!-- this is used for inheritance merges -->
            <phase>package</phase> <!-- bind to the packaging phase -->
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      [...]
</project>

[...]
[...]

在包生命周期阶段。

我希望在我的资源中使用新配置,而不是依赖jar。我使用maven配置生成jar文件,它对我有效。你能发布整个maven pom文件吗?如果你调用“mvn assembly:assembly”,你不会调用生命周期,这意味着没有任何东西会从“src/main/resources”复制到“target/classes”文件夹中。问题是您需要通过“mvn clean package”@khmarbaise运行构建,但是如何通过maven pacakge生成可执行jar?