2

我在 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 建议),然后看看我是否可以链接 pom。

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

4

2 回答 2

3

对于开发时间,您可以将依赖项添加为System Dependency。在这种情况下,它将通过文件路径(可以是您正在开发的实用程序.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)。

于 2012-11-14T15:13:49.890 回答
1

您可以将实用程序项目的 src 文件夹添加到 Eclipse 中的工作项目中。为您的开发目的。

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 依赖项。

于 2012-11-14T15:18:08.293 回答