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

标签 java maven jar

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

enter image description here

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

我的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>

最佳答案

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

关于java - 使用maven生成可运行jar时如何避免资源覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23690990/

相关文章:

Java 计划执行器 : Does it guarantee to not run in parallel if task hast not yet finished

java - session 过期时尝试注销导致登录后重定向到登录页面

java - 检测 Java JAR/代码篡改

java - 只在 JAR 中保留某些类的 Ant 任务 - 具有依赖性检查?

java - 通过反射运行 main() 时 ClassNotFound 但与 java -jar 一起工作正常

java - 如何从java中的静态方法访问非静态成员?

java - return (string expr) 和 return New String(string expr) 有什么区别?

java - 在maven jetty插件中使用@WebServlet注释

maven - 我在哪里可以找到 JSTL 版本 1.2.3 或更高版本?

java - 生命周期配置未涵盖插件执行 : com. mycila.maven-license-plugin