繁体   English   中英

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

[英]Jar missing generated pom.properties file when built in Eclipse

我的项目引用了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中的build target文件夹(\\ target \\ classes),我可以看到Eclipse用于Jar的所有文件,因此我只能假定Eclipse将其视为“常规” Java项目(尽管有父项目清单)它作为POM中的Maven依赖项)-因此Maven不会参与打包。

我怎样才能让Eclipse将项目依赖项视为Maven项目,以便将生成的pom.properties包含在父项目使用的Jar中?


更新

对于父级(战争)项目,每当我使用Eclipse构建项目时(使用“构建项目”或“自动构建”而不是“ Maven构建”),都会生成以下结构:

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

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

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

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

依赖项/ Jar项目显然在Eclipse中具有相同的“ Deployment Assembly”工具,因此我只需要弄清楚是什么在构建时创建了m2e-wtp文件夹并将其也应用于该项目。

实际上,我认为您无法使用默认的Eclipse Jar-Export。

如果要在Eclipse中进行操作,最好的办法就是拥有一个Maven Build运行配置,该配置与在Eclipse之外使用Maven的功能没有太大不同。 但这是主要原因,至少在Eclipse中您有一个按钮可以单击以生成jar。 但是,用于生成jar的常规Eclipse功能(文件>导出...)会忽略所有Maven设置。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM