在Eclipse中构建时,Jar缺少生成的pom.properties文件

时间:2014-11-28 13:49:14

标签: java eclipse maven eclipse-luna

我的项目是指Maven生成的生成的pom.properties文件:

META-INF/maven/${groupId}/${artifactId}

其中包含(在Jar中)作为另一个项目中的依赖项。当我在Eclipse之外使用Maven构建/打包主项目时,依赖Jar是按预期构建的(包含pom.properties文件),一切都很好。

但是,当我在Eclipse中构建/运行相同的(父)项目时,它并不存在。我错过了什么?

使用Eclipse,依赖项的Jar库(在lib文件夹中)包含除Maven生成的文件之外的所有内容。所以在我的情况下:

META-INF/
META-INF/persistence.xml
META-INF/MANIFEST.MF
~~~ snip ~~~

依赖项目存在于同一个工作区中,我有"工作区解析"启用。

查看Eclipse中的构建目标文件夹(\ target \ classes),我可以看到Eclipse用于Jar的所有文件,因此我只能假设Eclipse将其视为"常规" Java项目(尽管父项目将其列为POM中的Maven依赖项) - 因此Maven没有参与打包。

如何让Eclipse将项目依赖关系视为Maven项目/以便生成的pom.properties将包含在父项目使用的Jar中?


更新

对于父(War)项目,每当我使用Eclipse构建项目时都会生成以下结构(使用" Build Project"或"自动构建"不是" Maven build"):

target\m2e-wtp\web-resources\META-INF\maven\${groupId}\${artifactId}\pom.properties

这在Eclipse部署程序集中引用:

<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>

因此,当战争部署到Tomcat时,META-INF \ maven ...结构存在于归档的根目录。

依赖/ Jar项目显然具有相同的&#34;部署组件&#34; Eclipse中的工具,所以我只需要弄清楚在构建时创建m2e-wtp文件夹的原因并将其应用到该项目中。

1 个答案:

答案 0 :(得分:1)

实际上,我认为你不能使用默认的Eclipse Jar-Export。

如果你想在Eclipse中做到这一点,你可以做的最好的事情就是拥有Maven Build运行配置,这与在Eclipse之外使用Maven的方式没什么不同。但至少你在Eclipse中有一个按钮来点击do生成jar,如果这是主要原因。但是生成jar的正常Eclipse功能(File&gt; Export ...)忽略了所有Maven设置。

Workspace Resolution仅适用于编译和运行代码,但不适用于其他Maven功能。