我在settings.xml中有一个属性,
fwk.version =“2.0.001”
另一方面,一个包含两个项目的多项目,耳模块和ejbmodule。
ejbmodule有一个依赖:
<dependency>
<groupId>shared-lib</groupId>
<artifactId>proxi2.fwk.comuns</artifactId>
<version>${fwk.version}</version>
<type>pom</type>
</dependency>
并且它可以正常工作
但是earmodule依赖于ejbmodule
<dependencies>
<dependency>
<groupId>projectGroup</groupId>
<artifactId>ejbmodule</artifactId>
<version>1.0</version>
<type>ejb</type>
</dependency>
</dependencies>
并尝试解决依赖关系并失败:
[警告]缺少共享库的POM:proxi2.fwk.comuns:pom:$ {fwk.version}
而不是试图下载
共享-LIB:proxi2.fwk.comuns:POM:2.0.001
当我尝试打包父项目时会发生这种情况。
看起来像是Maven3中的一个错误
你知道为什么吗?
THX
修改
我们的解决方案/解决方法已在父pom中定义了dependencyManagement部分,因为在此级别中工作正常。
然后在子项目ejbmodule中,我们有一个“独立版本”依赖,因为在dependencyManagement中使用父定义
的settings.xml:
<fwk.version>2.0.001</fwk.version>
父母:
<dependencyManagement>
<dependency>
<groupId>shared-lib</groupId>
<artifactId>proxi2.fwk.comuns</artifactId>
<version>${fwk.version}</version>
<type>pom</type>
</dependency>
</dependencyManagement>
ejbmodule pom:
<dependency>
<groupId>shared-lib</groupId>
<artifactId>proxi2.fwk.comuns</artifactId>
<type>pom</type>
</dependency>
我希望这会有助于其他
答案 0 :(得分:1)
看起来有一个与此相关的open maven错误。
答案 1 :(得分:0)
我只在不同的情况下看到类似的问题。我使用了一个属性来定义一个URL来发送我创建的javadocs,就像这样
<distributionManagement>
<site>
<id>javadocs</id>
<name>Java Documentation</name>
<url>scp://${javadocs.url}/${project.groupId}/${project.artifactId}/${project.version}</url>
</site>
</distributionManagement>
当然,我在配置文件
中的settings.xml中设置了该属性</settings>
.
.
<profiles>
<profile>
<id>develop</id>
<properties>
<environment.type>develop</environment.type>
<javadocs.url>javadocs.server.com/home/javadocs/javadocs</javadocs.url>
</properties>
.
.
<activeProfiles>
<activeProfile>develop</activeProfile>
</activeProfiles>
</settings>
distributionManagement
部分放入项目父的pom中,该项目在项目子项
做的时候
mvn site-deploy
在子项目中出现此错误:
[错误]无法执行目标 org.apache.maven.plugins:maven-site-plugin:3.0:deploy(default-deploy) on project child:上传站点时出错:无法连接。原因: java.net.UnknownHostException:$ {javadocs.url} - &gt; [帮助1]
很明显,该物业已不再存在。
我能想到的唯一解决方法是将属性放在父pom中。我知道这很糟糕,因为如果你想改变它们,你需要重新部署。
答案 2 :(得分:0)
此问题似乎是由于Maven的错误引起的,并且显然预计不会很快得到解决,因此,我发现了一个简单的解决方法,似乎对我有用。
而不是使用点表示法(例如fwk.version)定义变量,请尝试使用类似fwk_version的蛇形情况。我尝试在存储库的settings.xml网址中使用tp define来运行它。
中发现了这一点我希望它也可以帮助传递依赖项。