【发布时间】:2019-05-09 09:56:20
【问题描述】:
我有一个 Maven 项目,结构如下:
模块 A(父模块)、子模块 B 和子模块 C
在父 pom.xml 中,我使用一个变量来设置所有项目的版本:
...
<version>${revision}</version>
...
<properties>
<revision>1.1</revision>
</properties>
...
<modules>
<module>moduleB</module>
<module>moduleC</module>
</modules>
</project>
Module C 是我的分发包,它使用 shade 插件将所有内容打包到一个 jar 中。
在子模块中我这样设置父级:
<parent>
<groupId>group</groupId>
<artifactId>moduleA</artifactId>
<version>${revision}</version>
</parent>
现在我想在另一个项目中使用模块 C,但是这样做时我只收到以下错误:
未能在项目 newProject 上执行目标:无法解析项目组的依赖项:newProject:jar:0.0.1-SNAPSHOT:无法在组:moduleC:jar:1.1 收集依赖项:无法读取组的工件描述符: moduleC:jar:1.1: 在 nexus (NEXUS_URL) 中找不到工件组:parent:pom:${revision}
我认为问题是,在将模块 C 引用为依赖项时未填写变量值。我该如何解决这个问题?我已经尝试在构建和强制更新所有工件之前清理项目但没有成功。
【问题讨论】:
-
您是否尝试过硬编码修订版?
-
我想避免这种情况,以便在一个地方轻松管理多模块项目的版本。事实上,该项目的子模块不仅仅是这两个。
-
我只想知道它是否有效
-
我认为这个链接可以帮助你:jeanchristophegay.com/…
-
我建议阅读以下内容:maven.apache.org/maven-ci-friendly.html(尤其是关于安装/部署的部分)...