繁体   English   中英

Maven/Eclipse 插件:让新 Maven 项目依赖于旧的非 Maven 项目的最简单方法?

[英]Maven/Eclipse plugin: easiest way to have new Maven project have dependency on legacy non-Maven project?

我在 Eclipse 中创建了一个新的 Maven 项目。 这一直很好,直到我需要向另一个 Eclipse 项目添加依赖项,这是一个遗留实用程序项目,它没有 pom.xml,也没有典型 Maven 项目的目录结构。 (它具有典型 eclipse Java 项目的目录结构)。 另一个项目与 Maven 项目位于同一个 Eclipse 工作区中。

在查看有关此的其他帖子时,似乎通常的解决方案是为其他项目构建 jar 并将其安装在 Maven 中。 然而我在Maven项目中编写代码的同时,我正在积极修改utility项目中的代码,所以我不能只安装一次jar来满足依赖关系。

处理这个问题的最简单方法是什么,以便我可以在两个项目中同时编码,并且还可以让 Maven 干净地构建? (当然 Eclipse 可以只用一个项目依赖就可以很好地构建。)

更新

使用 Build Helper 插件将实用程序项目源文件夹添加到我的 pom 是解决方案的可行路径,但随后我需要将实用程序项目的所有依赖项更新到我的新 Mavne 项目中,这也开始制作整个过程耗时(而且也不是我真正想要的依赖链)。 我认为如果我添加了所有依赖项,那么 Build Helper 建议就会起作用。

现在,我构建了实用程序项目 jar 并将其安装到 maven 中。 结果证明这是最快的解决方案。 我将尝试 Mavenize 实用程序项目,而不修改其结构(如下面的 FrVaBe 所建议的),然后看看我是否可以链接 poms。

我将保持这个问题开放,直到我有一个完整的解决方案可以报告回来,因为我认为这是其他人会遇到的问题(尝试将遗留项目与新的 maven 项目集成)。

对于开发时间,您可以将依赖项添加为系统依赖项 在这种情况下,它将由文件路径(可以是正在开发的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)。

您可以在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依赖项。

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

暂无
暂无

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

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