我有以下项目结构{} project.parent.basedir采用路径子模块,而不是家长模块路径的
| prj
| a1_module
|src
|pom
| a2_module
|src
|pom
| lib
xyz.jar
|pom(parent)
现在我注册子模块(a1_module)xyz.jar POM是这样的:
<dependency>
<groupId>com.asd.prj</groupId>
<artifactId>pubsub</artifactId>
<version>1.0.0.</version>
<scope>system</scope>
<systemPath>${project.parent.basedir}/lib/pubsub_2.11-1.0.0-SNAPSHOTjar</systemPath>
</dependency>
我希望${project.parent.basedir}/lib/pubsub_2.11-1.0.0-SNAPSHOTjar
应该给我prj/lib/pubsub_2.11-1.0.0-SNAPSHOTjar
,但它给了我这样的prj/a1_module/lib/pubsub_2.11-1.0.0-SNAPSHOTjar
路径。
由于没有保存在子模块中的jar,但它保存在主项目的“lib”目录之外,所以我得到错误。
This question说project.parent.basedir
应该给出该模块路径的父路径,但在我的情况下,它给我的子模块路径,而不是父模块路径。
任何暗示我做错了什么或其他方式注册我的本地jar在子模块中的方式。
删除系统范围的依赖性,并且不使用这样的lib目录结构...他们真的不好的东西在Maven中。更好地开始使用资源库管理器并将这个jar部署到资源库管理器中,然后像往常一样使用jar依赖项...(我假设pubsub-1.0.0-SNAPSHOT.jar是由另一个Maven构建创建的?) – khmarbaise
你是对的@khmarbaise。我将遵循资源库管理器的方式。 这不是一个好的方法。 –