Maven / Eclipse插件:让新Maven项目依赖于传统非Maven项目的最简单方法是什么?

时间:2012-11-14 15:06:57

标签: java eclipse maven

我在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项目集成)。

3 个答案:

答案 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)

我认为这个http://www.avajava.com/tutorials/lessons/how-do-i-add-a-project-as-a-dependency-of-another-project.html?page=1链接应该有所帮助。 这是一步一步的教程。