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