我有一个名为的项目父。它的类型是POM。有一个库(ojdbc6.jar
)不可用在公共仓库,所以我通过<SystemPath>
访问它,你可以看到在下面pom.xml
:无法访问子模块中的父项目库(jar) - Maven
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.Parent</groupId>
<artifactId>Parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>childModule</module>
</modules>
<dependencies>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc</artifactId>
<version>6</version>
<scope>system</scope>
<systemPath>${basedir}/lib/ojdbc6.jar</systemPath>
</dependency>
</dependencies>
<repositories>
<repository>
<id>in-project</id>
<name>In Project Repo</name>
<url>file://${basedir}/lib</url>
</repository>
</repositories>
现在孩子的项目名称是儿童模块1和儿童单词数使用这种(ojdbc6.jar
)库这是POM被提到如下:
<project>
<modelVersion>4.0.0</modelVersion>
<artifactId>testApp</artifactId>
<version>1.14.5.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>APP1</name>
<description>Application</description>
<parent>
<groupId>com.Parent</groupId>
<artifactId>Parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
</project>
当我使用Maven构建时,它给了我错误:
Description Resource Path Location Type
The container 'Maven Dependencies' references non existing library
'C:\Users\ABCCOMPUTER_NAME\.m2\repository\com\oracle\ojdbc\6\ojdbc-6.jar'
testApp Build path Problem.
它为什么看起来在本地存储库中?只有当父项目包含一个包含系统路径的库(jar
)时才会发生。当在同一个项目中访问系统路径库(jar
)时,不会发生这种情况,就像父项ojdbc6.jar
一样,那里没有问题。
罐子相对于孩子的位置在哪里? basedir属性在父项和子项中是不同的值。 –
Jar位于相对于父项目的lib文件夹中,maven将依赖项jar传递到它的module.I假设maven在将依赖项jar包含到子模块时相对于绝对路径进行转换。 –