Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java maven-使用本地源而不是外部依赖_Java_Eclipse_Git_Maven - Fatal编程技术网

Java maven-使用本地源而不是外部依赖

Java maven-使用本地源而不是外部依赖,java,eclipse,git,maven,Java,Eclipse,Git,Maven,如果有人能帮我,我会节省很多时间 我维护一个开放源代码库,该库被推送到sonatype存储库中。我每天对该库进行几次更改,并使用mvn部署将其推出到1.0_快照构建中。 让我们称之为项目1 我经常在另一个使用该库的项目中工作,我们称之为project2 现在,每当我对项目1或2进行更改时,我都需要首先构建项目1并将其部署到repo,然后构建项目2,以便它下载project1.jar的新副本 Project2将Project1作为pom.xml中的依赖项: <dependency>

如果有人能帮我,我会节省很多时间

我维护一个开放源代码库,该库被推送到sonatype存储库中。我每天对该库进行几次更改,并使用mvn部署将其推出到1.0_快照构建中。 让我们称之为项目1

我经常在另一个使用该库的项目中工作,我们称之为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>
这会将我的project1.jar上传到sonatype,然后project2下载新的快照并构建它

这是我在更大范围内所做工作的简化图,我的编译需要5分钟的启动和下载

问题:使用maven的正确方法是什么,以便它知道在项目2中的依赖项中使用project1的源代码?

IDE:

  • 在eclipse中安装m2e
  • 将两个项目导入工作区
  • 从使用者项目(右键单击>maven>启用工作区解析)
这将把project2的类放在其目标/类的类路径中,而不是放在实际的jar中

本机直线maven:

  • 如果这两个项目是经过相同构建周期的开源项目,那么它必须已经有一个,如果它们不相关,但是与您的用例相关,那么您可以在这两个项目的顶部临时创建一个maven树,并在一个命令中构建它将从下到上构建的顶部父级

它将找到leaf项目,构建它并将其安装到maven的缓存中,现在在构建projectA时,它将从maven的缓存中引用它,因此无需部署到sonatype。您还可以使用脱机模式将project2指向构建:

mvn -o package
然后将project1构建的上载部分放到远程repo


检查以下链接:和

谢谢你的帮助,我需要的解决方案应该独立于IDE-我需要它在命令行上更快地构建。谢谢-我将阅读maven树,这一定是我遗漏的,为什么他需要创建项目树?如果您只谈论本地开发,那么只需在project1上使用
mvn install
即可将
project1-1.0-SNAPSHOT
安装到本地
~/m2/存储库中,maven在project2上运行
mvn
命令时将使用该存储库。对于Eclipse也是如此,只要您按照上面的建议(工作区分辨率)@Alex从顶层构建maven的单个入口点module@JigarJoshi,我读到的问题是project1是一个与project2没有直接关系的实用程序库。。。在父模块下重新构造它们听起来不像我在这个场景中想要做的事情。我可能是错的,但OP没有明确说明它们之间的真正关系,当我对project1进行更改并使用mvn-o包进行编译,然后尝试在project2中使用该更改时,构建失败。这听起来像是正确的解决方案——我希望构建使用我的本地repo。我会查看你发布的链接。谢谢
mvn -o package