我有一個名爲的項目父。它的類型是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包含到子模塊時相對於絕對路徑進行轉換。 –