Ich versuche eine Java-Anwendung maven zu migrieren. Es gibt einige Abhängigkeiten, die bisher als jar
Dateien bereitgestellt wurden. Eine dieser Abhängigkeiten ist jung2
, die aus der Maven-Repository verfügbar: mvnrepository.comMaven: Wie wird die Abhängigkeit vom Typ Pom importiert?
Ich brauche alle bereitgestellten Module und ich verstehe nicht, wie diese dependecy richtig in meinem pom.xml
so erklären, dass alle entsprechenden jar
Dateien heruntergeladen und Die Klassen sind zur Kompilierzeit verfügbar.
Dies ist, was meine pom.xml
Datei wie jetzt aussieht:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>groupId</groupId>
<artifactId>myProject</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencyManagement>
<dependencies>
<!-- https://mvnrepository.com/artifact/net.sf.jung/jung2 -->
<dependency>
<groupId>net.sf.jung</groupId>
<artifactId>jung2</artifactId>
<version>2.0.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
Ich habe auch versucht <scope>import</scope>
Weglassen und die Abhängigkeit in den dependencies
Abschnitt setzen. Bei der Ausführung von mvn compile
oder mvn package
tritt eine Fehlermeldung auf, dass die entsprechenden Pakete nicht vorhanden sind.
Wenn ich zusätzlich eine dependency
innerhalb dependencies
aber außerhalb dependencyManagement
, z.
<dependencies>
<dependency>
<groupId>net.sf.jung</groupId>
<artifactId>jung2</artifactId>
</dependency>
Ich erhalte eine Fehlermeldung über fehlende Version. Aber soweit ich das verstanden habe, sollte dies aufgrund dependencyManagement
nicht notwendig sein? Wenn ich <version>2.0.1</version>
auch hinzufügen, dann bekomme ich folgende Fehlermeldung:
Failure to find net.sf.jung:jung2:jar:2.0.1
Dies ist in einem '' Abschnitt, so müssen Sie entweder eine '' außerhalb davon refencing es hinzuzufügen, oder nehmen Sie es aus dem Abhängigkeitsmanagement. Siehe http://stackoverflow.com/questions/2619598/differences-between-dependencymanagement-and-dependencies-in-maven?rq=1 –
Tunaki
@Tunaki Danke für Ihre Antwort, ich habe meinen ursprünglichen Beitrag bearbeitet. Das Hinzufügen der Abhängigkeit außerhalb des 'dependencyManagers' hat bisher nicht funktioniert. – yogii
Ja, Sie müssen den Typ hinzufügen (und vielleicht den Umfang, ich bin mir nicht sicher). – Tunaki