簡體   English   中英

MavenError:無法在項目上執行目標:無法解決Maven Multimodule項目中的依賴關系

[英]MavenError: Failed to execute goal on project: Could not resolve dependencies In Maven Multimodule project

我正在嘗試創建一個 Maven 多模塊項目。 該項目已成功創建,但是當我嘗試將一個模塊用作另一個模塊的依賴項時,它會引發異常。 當我使用 eclipse 創建模塊時,我選擇打包為 jar,但是在創建模塊時,子 pom.xml 中沒有提及打包標簽,我手動將打包標簽插入為 jar。 以下是我的父母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>

道子模塊:

<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>
------------------------

服務子模塊:

<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>
------------------------------------------

Dao 模塊 maven 清理並安裝成功,但是當我嘗試使用服務模塊時,它會生成以下異常:

[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

我正在嘗試從網絡上查找解決方案,但仍然找不到解決方案。 在eclipse中,當我打開服務模塊的Dependency Hierarchy時,它將DAO模塊顯示為文件夾而不是jar。 下面是服務模塊的Dependency Hierarchy的屏幕截圖。

在此處輸入圖像描述

如果有人回到這個問題,我認為這里的問題是未能首先安裝父 pom,所有這些子模塊都依賴它,因此Maven Reactor無法收集構建子模塊所需的依賴項。

所以從根目錄(這里D:\luna_workspace\empire_club\empirecl )它可能只需要一個:

mvn clean install

(旁白: <relativePath>../pom.xml</relativePath>並不是真正必要的,因為它是默認值)。

就我而言,我忘記了這是包裝沖突 jar 與 pom。 我忘了寫

<packaging>pom</packaging>

在每個子 pom.xml 文件中

我的解決方案是在artifactIdversion之間插入<packaging>pom</packaging>

<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>

我的解決方案:

  1. 刪除當前工作區中的所有項目
  2. 再次全部導入
  3. maven update project (Alt + F5) -> Select All並檢查Force Update of Snapshots/Releases
  4. maven build (Ctrl + B) 直到沒有東西可以構建

第二次嘗試后它對我有用。

對我來說,在<dependency management><dependencies>下添加以下代碼塊解決了這個問題。

<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.el</artifactId>
    <version>3.0.1-b06</version>
</dependency>

這對我有用-轉到Java構建路徑->訂購和導出(檢查JRE系統庫和maven依賴項)在我的情況下,這兩個未選中。

如果您在家工作,請檢查您的 VPN 連接。

刪除或關閉所有其他項目,然后重新啟動 netbeans IDE,然后重試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM