我有2个maven模块,它们都是快照构建,因为它们处于活动开发阶段。 为了便于讨论,2个模块是常见的,&网页。网络取决于共同点。 我正在使用项目聚合来定义各个模块。 如果我执行一个目标,让我们说在包含常见和模块的父pom.xml上进行mvn测试。 web上两个模块的测试目标按预期运行。 如果我只对web模块运行测试,则无法找到common的依赖项。换句话说,它无法找到公共快照jar。由于它是一个快照,它没有部署到一个repo,所以这是有道理的。 我的问题是,当我运行父pom(项目聚合)时,它如何找到依赖?该公共模块工件部署在何处,以便Web模块可以访问它并解决其依赖性。
答案 0 :(得分:0)
如果您希望能够在任何地方运行它,您可以将快照库部署到本地存储库: 在您的情况下,使用以下命令将common部署到Web中:
mvn deploy:deploy-file -Durl = file:/// your / web-project / root / dir -Dfile = your-common。 jar -DgroupId = -DartifactId = -Dpackaging = jar -Dversion = xx-SNAPSHOT
这将生成一个本地repo dir结构,其中包含jar。然后使用以下命令修改您的web的pom.xml:
<repositories>
<repository>
<id>project.local</id>
<name>project</name>
<url>file:${project.basedir}/repo</url>
</repository>
</repositories>
答案 1 :(得分:0)
正如Franz Ebner在评论中所建议的那样,首先运行:
# for the core pom:
mvn install
将核心工件放入本地机器maven 2 repo, 在构建/测试/无论网络工件时,可以从哪里获取。