Mam projekt o nazwie Parent. Jego typ to POM. Jest biblioteka (ojdbc6.jar
), który nie jest dostępny w repozytorium publicznych tak mam dostępu do niego poprzez <SystemPath>
jak widać poniżej pom.xml
:Nie można uzyskać dostępu do nadrzędnej biblioteki projektu (jar) w module podrzędnym - 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>
Teraz nazwy projektu dziecko są dzieci Module1 i dzieci Module2 użycie tego (ojdbc6.jar
) biblioteka to POM jest wymienione poniżej:
<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>
Kiedy buduję używając Mavena, pojawia się błąd:
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.
Dlaczego wygląda w lokalnym repozytorium? Dzieje się tak tylko wtedy, gdy projekt nadrzędny zawiera bibliotekę (jar
) zawierającą ścieżkę systemową. Nie dzieje się tak, gdy biblioteka ścieżek dostępu do systemu (jar
) w tym samym projekcie, np. Rodzic odnoszący się do ojdbc6.jar
, jest w porządku.
Gdzie znajduje się słoik względem dzieci? Właściwość basedir ma inną wartość w rodzicu i dzieciach. –
Jar znajduje się w folderze lib w stosunku do projektu nadrzędnego i maven trasfer słoiczki zależności do swojego modułu. Zakładam, że konwersja maven w stosunku do ścieżki bezwzględnej, gdy zawiera słoik zależności do modułu potomnego. –