gpt4 book ai didi

java - Maven/Eclipse 插件 : easiest way to have new Maven project have dependency on legacy non-Maven project?

转载 作者:行者123 更新时间:2023-11-30 07:21:28 25 4
gpt4 key购买 nike

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

最佳答案

对于开发时间,您可以将依赖项添加为 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 对系统依赖的处理有时是特殊的。例如。它们不会包含在 war 包中!因此,当您完成后,我强烈建议您将实用程序库安装到 Maven 存储库或将其部署到存储库管理器 (Nexus/Artifactory)。

关于java - Maven/Eclipse 插件 : easiest way to have new Maven project have dependency on legacy non-Maven project?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13381441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com