wake-up-neo.com

MavenError: Ziel für Projekt konnte nicht ausgeführt werden: Abhängigkeiten in Maven Multimodule-Projekt konnten nicht aufgelöst werden

Ich versuche ein Multi-Modul-Projekt zu erstellen. Das Projekt wurde erfolgreich erstellt, aber wenn ich versuche, ein Modul als Abhängigkeit von einem anderen Modul zu verwenden, wird eine Ausnahme generiert. Beim Erstellen eines Moduls mit Eclipse wurde die Verpackung als Glas ausgewählt. Beim Erstellen des Moduls wurde das Verpackungs-Tag in der untergeordneten Datei pom.xml jedoch nicht erwähnt, und das Verpackungs-Tag wurde manuell als Glas eingefügt. Folgendes ist mein Elternteil pom.xml:

<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>com.netsol</groupId>
<artifactId>empirecl</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
-------------------------
<modules>
    <module>empirecl-web</module>
    <module>empirecl-dao</module>
    <module>empirecl-service</module>
    <module>empirecl-api</module>
</modules>

Dao-Kindermodul:

<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>
<parent>
    <groupId>com.netsol</groupId>
    <artifactId>empirecl</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
</parent>
<artifactId>empirecl-dao</artifactId>
<packaging>jar</packaging>
<name>empirecl-dao</name>
------------------------

Untergeordnetes Servicemodul:

<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>
<parent>
    <groupId>com.netsol</groupId>
    <artifactId>empirecl</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
</parent>
<artifactId>empirecl-service</artifactId>
<packaging>jar</packaging>
<name>empirecl-service</name>

<dependencies>
    <dependency>
        <groupId>com.netsol</groupId>
        <artifactId>empirecl-dao</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <type>jar</type>
    </dependency>
------------------------------------------

Das Dao-Modul maven sauber und erfolgreich installiert, aber wenn ich versuche, Service-Modul zu verwenden, wird es eine folgende Ausnahme erzeugen:

[ERROR] Failed to execute goal on project empirecl-service: Could not resolve dependencies for project com.netsol:empirecl-service:jar:0.0.1-SNAPSHOT: Failed to collect dependencies at com.netsol:empirecl-dao:jar:0.0.1-SNAPSHOT: Failed to read artifact descriptor for com.netsol:empirecl-dao:jar:0.0.1-SNAPSHOT: Could not find artifact com.netsol:empirecl:pom:0.0.1-SNAPSHOT -> [Help 1]
org.Apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project empirecl-service: Could not resolve dependencies for project com.netsol:empirecl-service:jar:0.0.1-SNAPSHOT: Failed to collect dependencies at com.netsol:empirecl-dao:jar:0.0.1-SNAPSHOT

Ich versuche die Lösung aus dem Web zu finden, aber die Lösung wird immer noch nicht gefunden. Wenn ich in Eclipse das Dependency Hierarchy Des Servicemoduls öffne, wird das DAO-Modul als Ordner angezeigt, der nicht jar ist. Unten sehen Sie den Screenshot von Dependency Hierarchy des Servicemoduls.

enter image description here

26

Für den Fall, dass jemand darauf zurückkommt, war es meines Erachtens das Problem, zuerst das übergeordnete pom zu installieren, von dem alle diese Submodule abhängen, so dass der Maven Reactor die notwendigen Abhängigkeiten zu nicht sammeln kann Bauen Sie das Submodul.

Also aus dem Stammverzeichnis (hier D:\luna_workspace\empire_club\empirecl) es braucht wahrscheinlich nur ein:

mvn clean install

(Nebenbei: <relativePath>../pom.xml</relativePath> ist nicht wirklich notwendig, da es ist der Standardwert ).

25
declension

In meinem Fall habe ich vergessen, dass es sich um die Verpackung von Konfliktglas gegen Pom handelt. Ich habe vergessen zu schreiben

<packaging>pom</packaging>

In jeder untergeordneten pom.xml-Datei

2
Sultan1991

Meine Lösung bestand darin, es zwischen artifaktId und version einzufügen.

<groupId>com.onlinechat</groupId>
<artifactId>chat-online</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
    <module>server</module>
    <module>client</module>
    <module>network</module>
</modules>
0
WounderGrifft