用于资源导出的 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 配置的主要内容,如果未能解决你的问题,请参考以下文章

maven资源导出问题

IDEA中的Maven项目配置了resources标签还是不能成功导出资源?

eclipse如何从svn上导出maven工程

maven项目中配置文件导出问题

maven中的资源过滤问题

maven中的资源过滤问题