用于资源导出的 Maven 配置
Posted
技术标签:
【中文标题】用于资源导出的 Maven 配置【英文标题】:Maven configuration for resource export 【发布时间】:2013-11-04 08:49:32 【问题描述】:我在eclipse下有一个带有spring依赖的maven项目。它在 Eclipse 下正确运行,但是当我尝试使用 Eclipse 导出可运行 jar 选项将项目导出到 jar 文件时。生成的jar文件无法运行,因为找不到放在src/main/resources下的xml文件
我注意到 jar 文件中的资源放在 myFile.jar/resources/META-INF/config.xml 下,而不是 myFile.jar/META-INF/config.xml
为了解决这个问题,我编辑了类路径并删除了 include="*/.java" 并添加了排除属性。 工作一: 由maven更新:
但是当我使用 maven (alt+F5) 更新项目时,它会更新 .classpath 文件并再次出现问题。
为了解决这个问题,我添加了 源/主/资源 /.xml /.java [...]
但它总是将 include="*/.java" 添加到 .classpath 文件中。
我的问题是如何配置 maven,以便即使我使用 maven 更新项目,导出 jar 文件也会放在 myFile.jar/META-INF/config.xml 下。
任何帮助都会很棒。
谢谢。
【问题讨论】:
【参考方案1】:使用 Maven-Shade-Plugin。
来自插件页面:
这个插件提供了将工件打包成一个 uber-jar,包括它的依赖和遮蔽 - 即重命名 - 一些依赖的包。
该插件将所有依赖项捆绑到一个可运行的 jar 文件中。
它还允许您使用以下代码最小化 jar 文件的大小:
<configuration>
<minimizeJar>true</minimizeJar>
</configuration>
有关最小化的一些信息,请参阅我的question。
【讨论】:
【参考方案2】:你是用 maven 创建的可执行 JAR 文件吗?
如果是这样,您可以使用Resource plugin 将配置文件放置在您希望找到它们的位置。
【讨论】:
以上是关于用于资源导出的 Maven 配置的主要内容,如果未能解决你的问题,请参考以下文章