2

我有一个 Maven 项目,它依赖于 git 上的另一个远程项目。我添加了一个

<scm>
    <connection>scm:git:git@github.com:MY-Group/my.project.git</connection>
    <url>https://github.com/MY-Group/my.project</url>
</scm>

进入我当前的项目 pom.xml。

当我这样做时mvn scm:checkout,项目被下载到目标/结帐文件夹中。

我想做的是覆盖mvn install

  1. 首先将此远程项目检出到目标文件夹中
  2. 从目标文件夹构建并安装此远程项目
  3. 然后构建当前项目

这可能吗?如果是这样,我们怎样才能做到这一点?任何帮助

4

2 回答 2

0

详细说明 khmarbaise 在评论中的回答,项目间的签出和构建依赖并不是 Maven 的本意,而是一个自动构建系统,Maven 存储库可以做得很好。

像ArtifactoryNexus这样的 Maven 存储库就像Maven Central 的私有版本。

Jenkins是一个持续集成系统(希望您已经在运行它)。您可以将 Jenkins 配置为轮询您的 SCM 服务器以进行更改,并在看到更改时开始构建。Jenkins 将使用 Maven 构建您的工件并将其部署到您的私有存储库。Jenkins 还可以了解项目间的依赖关系,并在上游项目更改后开始下游构建。

除了这是处理您的 Maven 项目集合的“正确”方式之外,如果项目规模很大,它还可以节省您的时间。假设您有一些非常大的核心服务器代码,并且您正在编写一个与服务器对话的接口。在您最初的问题中,您必须检查并编译服务器才能处理您的界面代码,即使您不打算修改服务器。更好的是让 Jenkins 为您构建服务器。现在,在服务器项目上工作的人检查并编辑它,依赖服务器项目的人从私有存储库中获得构建的工件。

于 2013-03-17T03:29:19.077 回答
0

使用 apache archiva,问题已解决

于 2013-03-18T06:35:42.187 回答