我在Eclipse中创建了一个新的Maven项目。这工作正常,直到我需要向另一个Eclipse项目添加依赖项,这是一个遗留实用程序项目,它没有pom.xml,并且没有典型Maven项目的目录结构。 (它具有典型的eclipse Java项目的目录结构)。这个其他项目与Maven项目位于相同的Eclipse工作区中。
在查看其他帖子时,似乎通常解决方案是为其他项目构建jar并将其安装在Maven中。但是我在Maven项目中编写代码时正在主动修改实用程序项目中的代码,所以我不能只安装一次jar来满足依赖。
处理这个的最简单方法是什么,以便我可以在两个项目中同时编码,并且还可以让maven干净地构建? (当然,只需一个项目依赖项,Eclipse就可以构建得很好。)
更新
使用Build Helper插件将实用程序项目源文件夹添加到我的pom是解决方案的可行途径,但后来我需要将实用程序项目的所有依赖项更新到我的新Mavne项目中,该项目开始实现整个过程太耗时(而且也不是我想要的依赖链)。我认为,如果我已经添加了所有依赖项,那么Build Helper建议就可以了。
现在,我构建了实用程序项目jar并将其安装到maven中。结果证明这是最快的解决方案。我将尝试对实用程序项目进行Mavenize,而不修改其结构(如下面的FrVaBe所示),然后看看我是否可以链接poms。
我将保持这个问题的开放,直到我有一个可以报告的完整解决方案,因为我认为这是其他人将遇到的问题(尝试将遗留项目与新的maven项目集成)。
答案 0 :(得分:3)
对于开发时间,您可以将依赖项添加为System Dependency。在这种情况下,它将由文件路径(可以是正在开发的utility.jar文件的路径)解析。
如上面链接中所述添加它,例如:
<dependencies>
<dependency>
<groupId>my-utility</groupId>
<artifactId>my-utility</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${somewhere}/lib/my-utility.jar</systemPath>
</dependency>
</dependencies>
系统依赖关系的maven处理有时是特殊的。例如。它们不会包含在战争包中!因此,当您完成后,我强烈建议您将实用程序库安装到maven存储库或将其部署到存储库管理器(Nexus / Artifactory)。
答案 1 :(得分:1)
您可以在eclipse中将实用程序项目的src文件夹添加到您的工作项目中。为了您的发展目的。
right click on Working project
go to properties and choose java build path
go to source tab
Add your utility project src folder to that.
稍后您可以将jar安装为maven依赖。
答案 2 :(得分:0)