如果有人可以帮助我,这将节省我很多时间。
我维护一个开源库,它被推送到一个sonatype存储库。我每天对该库进行几次更改,并使用mvn deploy将其推送到1.0_snapshot构建。 我们称之为project1
我在另一个使用该库的项目中不断工作,我们称之为project2。
现在,每当我对项目1或2进行更改时,我需要首先构建项目1并将其部署到repo,然后构建项目2,以便下载project1.jar的新副本
Project2将Project1作为pom.xml中的依赖项:
<dependency>
<groupId>com.group</groupId>
<artifactId>project1</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
为了构建可以测试我所有更改的方式,我必须做这样的事情:
mvn -f ./project1/pom.xml clean deploy
mvn -U -f ./project2/pom.xml clean package
这将我的project1.jar上传到sonatype,然后project2下载新的快照并构建它。
这是我正在做的更大规模的简化图片,我的编译需要5分钟的上传和下载。
问题:使用maven的正确方法是什么,因此它知道在项目2的依赖项中使用project1的源代码?
答案 0 :(得分:6)
IDE:
这会将project2的类放在类路径中,而不是实际的jar
原生直接专家:
它将找到leaf项目,构建它将其安装在maven的缓存中,现在在构建projectA时它将从maven的缓存中引用它,因此无需部署到sonatype
答案 1 :(得分:3)
您还可以使用离线模式指向project2进行构建:
mvn -o package
然后将project1 build的上传部分删除到远程仓库。
检查以下链接:Intro to repositories和How do I configure Maven for offline development?