2016-12-01 105 views
0

我有兩個項目。 ABC和XYZ。 我需要的是獲得ABC類在XYZ將一個maven項目添加到另一個maven項目導致無法解決依賴關係錯誤

。爲此,我添加了ABC的依賴關係到XYZ中,並在月食中做了mvn clean。有效!

,但當時我並MVN乾淨安裝它顯示

Failed to execute goal on project XYZ: Could not resolve dependencies 
Failure to find ABC-SERVER:ABC:jar:Server in https://repo.maven.apache.org/maven2 was cached in the local repository. 

這裏是我的聚甲醛的 ABC的pom.xml:

<groupId>abc-server</groupId> 
    <artifactId>ABCServer</artifactId> 
    <name>ABCServer</name> 
    <version>Server</version> 
    <packaging>war</packaging> 

XYZ的pom.xml:

<dependency> 
     <groupId>abc-server</groupId> 
     <artifactId>ABCServer</artifactId> 
     <version>Server</version> 
    </dependency> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>${java.version}</source> 
       <target>${java.version}</target> 
       <compilerArgument>-Xlint:all</compilerArgument> 
       <showWarnings>true</showWarnings> 
       <showDeprecation>true</showDeprecation> 

      </configuration> 
     </plugin> 
    </plugins> 

有什麼辦法做到這一點。我需要從Windows命令行運行mvn clean package。

任何幫助將不勝感激。

+0

也一樣。沒有運氣 – MonsterJava

+0

是的,它在回購。但它在戰爭 – MonsterJava

+0

版本,artifactid和groupId是一樣的。但有一點是不同的:在美國廣播公司的mvn乾淨後製作戰爭文件。從B它正在尋找jar文件?這可能是一個問題? – MonsterJava

回答

0

您必須將ABCServer工件部署到遠程存儲庫。

您ABCServer庫應該做的伎倆

+0

不一定。如果這兩個工件都在反應堆中(也就是說有一個包含ABCServer和XYZ作爲模塊的父pom,並且從那裏運行maven),或者它位於_local_存儲庫中(例如,您運行'mvn安裝在ABCServer上)。 –

0

的問題mvn deploy是你打包的項目ABC戰爭。您需要更改包裝罐子..
因此,在錯誤信息更改<packaging>war</packaging><packaging>jar</packaging>

1

看:

未能找到ABC-SERVER:ABC:罐子:服務器

顯然,它永遠不會找到那個依賴關係,因爲沒有這樣的工件存在。你的ABC服務器打包成一場戰爭。

您可以通過將<type>war</type>添加到XYZ中的依賴關係來正確解析依賴關係,但如果XYZ也是戰爭,則可能不是您想要的。 Maven將在XYZ戰爭中對進行重疊 ABC-SERVER戰爭(詳情請見https://maven.apache.org/plugins/maven-war-plugin/overlays.html)。

如果你只是想重用從ABC-SERVER的web應用,我想正確的方式做到這一點是類分離到一個新的JAR構件和使用,在雙方的webapps。

相關問題