Die neuen Abhängigkeiten können aufgrund der unterschiedlichen Bibliotheksversion im alten Nicht-Maven-Projekt und im neuen Maven-Projekt vorhanden sein.
Angenommen, das nicht-Maven-Projekt hätte JUnit in Version 3.8 verwendet.
pom.xml
<?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>sub.optimal</groupId>
<artifactId>foo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
</project>
in diesem Beispiel würden Sie nur haben JUnit als Abhängigkeit
mvn dependency:tree
Ausgang
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ suboptimal ---
[INFO] com.example:suboptimal:jar:0.0.1-SNAPSHOT
[INFO] \- junit:junit:jar:3.8:test
Wenn Sie jetzt in der Maven-Projekt Version 4.12 (statt der bisherigen verwenden würde 3.8) Sie sehen folgende Abhängigkeiten (nach Änderung der Versionsnummer in pom.xml
)
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
Ausgang würde
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ suboptimal ---
[INFO] com.example:suboptimal:jar:0.0.1-SNAPSHOT
[INFO] \- junit:junit:jar:4.12:test
[INFO] \- org.hamcrest:hamcrest-core:jar:1.3:test
Für die gezeigte Abhängigkeit sein junit:junit:jar:4.12:test
die test
bedeutet, dass es nicht zu einer Laufzeitabhängigkeit. Es müssen die bereitgestellten Tests ausgeführt werden.
In Netbeans Sie beide jetzt als Test Abhängigkeit
Es gibt einen anderen Weg, um die Abhängigkeiten direkt zu zeigen, in Netbeans sehen würde. Wenn Sie die pom.xml
öffnen, klicken Sie auf Graph
und erst zum ersten Mal, nachdem Sie es auf Show Graph
öffnen.
Sie einen Baum visuelle Abhängigkeit
bearbeiten erhalten: Sie haben noch nicht gesagt, was Ihr altes Projekt verwendet. Aber finden Sie ein Beispiel für die axis2 kernel
unten.
Wenn Ihr neues Projekt folgende Abhängigkeit hinzufügen
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-kernel</artifactId>
<version>1.6.1</version>
</dependency>
Auflistung der Abhängigkeiten mit mvn dependency:tree
verrät compile time
Abhängigkeiten folgende (benötigt auch für die Laufzeit, siehe Maven dependency scopes)
[INFO] \- org.apache.axis2:axis2-kernel:jar:1.6.1:compile
[INFO] +- org.apache.ws.commons.axiom:axiom-api:jar:1.2.12:compile
[INFO] | +- org.apache.geronimo.specs:geronimo-activation_1.1_spec:jar:1.0.2:compile
[INFO] | +- org.apache.geronimo.specs:geronimo-javamail_1.4_spec:jar:1.6:compile
[INFO] | +- jaxen:jaxen:jar:1.1.1:compile
[INFO] | \- org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:jar:1.0.1:compile
[INFO] +- org.apache.ws.commons.axiom:axiom-impl:jar:1.2.12:compile
[INFO] | \- org.codehaus.woodstox:wstx-asl:jar:3.2.9:compile
[INFO] +- org.apache.geronimo.specs:geronimo-ws-metadata_2.0_spec:jar:1.1.2:compile
[INFO] +- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1:compile
[INFO] +- javax.servlet:servlet-api:jar:2.3:compile
[INFO] +- commons-httpclient:commons-httpclient:jar:3.1:compile
[INFO] | \- commons-codec:commons-codec:jar:1.2:compile
[INFO] +- commons-fileupload:commons-fileupload:jar:1.2:compile
[INFO] +- wsdl4j:wsdl4j:jar:1.6.2:compile
[INFO] +- org.apache.ws.commons.schema:XmlSchema:jar:1.4.7:compile
[INFO] +- org.apache.neethi:neethi:jar:3.0.1:compile
[INFO] +- org.apache.woden:woden-api:jar:1.0M9:compile
[INFO] +- org.apache.woden:woden-impl-dom:jar:1.0M9:compile
[INFO] | \- org.apache.woden:woden-impl-commons:jar:1.0M9:compile
[INFO] +- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] \- javax.ws.rs:jsr311-api:jar:1.0:compile
Warum es Ihr schaut jetzt Altes Projekt brauchte sie nicht? Angenommen, Ihr altes Projekt verwendet die Datei axis2.war
(extrahiert aus axis2-1.6.1-war.zip). Die Abhängigkeiten sind eingebettet. tree`:
jar -tf axis2.war | grep geronimo-ws-metadata
Ausgang
WEB-INF/lib/geronimo-ws-metadata-LICENSE.txt
WEB-INF/lib/geronimo-ws-metadata_2.0_spec-1.1.2.jar
Sie können es mit 'mvn Abhängigkeit erfahren. – SubOptimal
@SubOptimal das alte Projekt ist nicht pom, es wird nicht akzeptieren, die MVN-Befehl – shabby
Es war für das neue Maven-Projekt, um zu sehen, wo die Abhängigkeit kommt aus. Sind die Abhängigkeiten, die Sie der 'pom.xml' hinzufügen, die gleiche Version? Dies könnte der Grund sein, dass die Abhängigkeit für eine von Ihnen hinzugefügte Bibliothek angezeigt wird. – SubOptimal