【发布时间】:2011-08-29 00:37:27
【问题描述】:
我正在使用Maven: add a dependency to a jar by relative path 中所述的本地存储库。
repository-url 在最顶层的pom.xml 中定义为
<url>file:${basedir}/../3rdParty/maven-repository</url>
另外,最顶层的pom.xml 定义了2个模块
<modules>
<module>sub1</module>
<module>sub2</module>
</modules>
问题是,如果一个模块(比如sub1)定义了一个应该从存储库下载的依赖项,并且从最顶层目录调用 maven,${basedir} 没有设置到这个目录,而是设置为sub1,导致存储库 URL 错误。
所以,假设最上面的项目pom.xml 驻留在
/Development/myproject/pom.xml
并且存储库在
/Development/3rdParty/maven-repository
那么repository URL应该设置为
/Development/myproject/../3rdParty/maven-repository
但事实证明它被设置为
/Development/myproject/sub1/../3rdParty/maven-repository
这当然不存在。
知道为什么会这样吗?
【问题讨论】:
-
为什么不使用存储库管理器来维护您的工件?
-
根据给定的信息,您的构建不可靠且不可重现。这对构建来说是不行的。