Ich habe ein Projekt namens Parent. Sein Typ ist POM. Es gibt eine Bibliothek (ojdbc6.jar
), die nicht im öffentlichen Repository ist so bin ich es über <SystemPath>
Zugriff wie Sie unten pom.xml
sehen in kann:Zugriff auf die übergeordnete Projektbibliothek (jar) im untergeordneten Modul nicht möglich - 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>
nun das Kind Projektnamen sind Kinder Module1 und Kinder Module2 Verwendung dieser (ojdbc6.jar
) Bibliothek Es POM ist ist unten erwähnt:
<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>
Beim Erstellen mit Maven gibt es einen Fehler:
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.
Warum sieht es im lokalen Repository? Dies geschieht nur, wenn das übergeordnete Projekt eine Bibliothek enthält (jar
), die den Systempfad enthält. Es passiert nicht, wenn Bibliothek Pfadsystem (jar
) im selben Projekt, wie Eltern Bezug ojdbc6.jar
, es ist in Ordnung dort.
Wo befindet sich das Glas relativ zu den Kindern? Die Eigenschaft basedir hat einen anderen Wert im übergeordneten und untergeordneten Element. –
Jar befindet sich im lib-Ordner relativ zum übergeordneten Projekt und maven trasfer die Abhängigkeit jars zu seinem Modul.Ich nehme an, Maven konvertieren relativ zum absoluten Pfad, wenn seine Abhängigkeit Abhängigkeit von Kind-Modul. –