【发布时间】:2014-11-28 13:49:13
【问题描述】:
我的项目是指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 构建项目(使用“构建项目”或“自动构建”而不是“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 中显然具有相同的“部署程序集”工具,所以我只需要弄清楚是什么在构建时创建了 m2e-wtp 文件夹并将其应用到该项目。
【问题讨论】:
-
请问您如何访问 jar 中的 pom.properties ?提前知道groupId和artifactId了吗?
标签: java eclipse maven eclipse-luna