我有两个基于Maven的Java项目,项目A和项目B. 项目A由团队管理,B由另一个团队管理。项目A是一个基本项目,其项目B中消耗了库和类。 当前,项目A的团队在他们对项目进行任何更改时将其项目的罐子发送给团队B,团队B必须用旧项目新的一个。同步两个java项目的最佳方法是什么?
由于我们的项目是基于maven的项目并作为git存储库进行管理,因此我相信会有更好的方式自动执行此操作,以便在项目A发生更改时,B团队不必担心它和最新的变化应该会自动反映到团队B中。
我有两个基于Maven的Java项目,项目A和项目B. 项目A由团队管理,B由另一个团队管理。项目A是一个基本项目,其项目B中消耗了库和类。 当前,项目A的团队在他们对项目进行任何更改时将其项目的罐子发送给团队B,团队B必须用旧项目新的一个。同步两个java项目的最佳方法是什么?
由于我们的项目是基于maven的项目并作为git存储库进行管理,因此我相信会有更好的方式自动执行此操作,以便在项目A发生更改时,B团队不必担心它和最新的变化应该会自动反映到团队B中。
看到,因为你正在使用Maven,A队应公布项目A到资源库(可能是一个私人的)。 B队,然后依靠项目A(通过他们的POM),其余的将自己照顾自己,即。不再需要手动复制库。
作为一种奖励,团队B总是可以准确指定他们希望依赖哪个版本的项目A. (设置你自己的私有存储库并不困难,Apache的Web服务器可以托管它,或者你可以使用Nexus这样的工具,一些构建工具(例如gradle)会生成一个POM并将你的库发布到一个站点)
您可以通过详细阐述您的“本地存储库”的含义来改进此答案。我假设你在谈论一个“托管版本库”,如Nexus或Artifactory。 –
将某个项目(jar + pom)推送到某个存储库(Nexus)。然后在最新版本的Project B POM.xml中添加依赖项。
<distributionManagement> <repository> <id>releases</id> <name>Releases Repository</name> <url> http://localhost:8081/nexus/content/repositories/releases </url> </repository> <snapshotRepository> <id>snapshots</id> <name>Snapshot Repository</name> <url> http://localhost:8081/nexus/content/repositories/snapshots </url> </snapshotRepository> </distributionManagement>
添加上述在项目A和B
<dependency>
<groupId>mygroup</groupId>
<artifactId>C</artifactId></dependency>
在项目B添加上面。 当在项目A中完成新更改时,它将在重建期间反映在B中。
然后做吧....(你的问题是什么?) –
你正在使用Maven。因此,团队A应该发布到当地的Maven仓库,团队B应该依靠这个仓库。不再需要手动复制jar文件。 – dave
你有你的问题本身的答案!你究竟想说什么? – Suyash