2012-08-10 324 views
2

我有3個maven項目:第一個 - 「A」帶包裝罐,第二個 - 「B」包裝罐,第三個 - 「C」包裝罐。 「C」依賴於「B」作爲編譯時間依賴性,「B」依賴於「A」也作爲編譯時間依賴性。項目「C」也使用「A」類。所以我有傳遞依賴C - > B - >答:但是當我嘗試構建這些項目時,編譯項目C時maven失敗並顯示編譯錯誤:它無法從「C」中使用的項目「A」中找到類。Maven傳遞依賴關係

我認爲maven可以解決傳遞依賴。爲什麼我會得到這樣的錯誤?

+0

這應該很好,所以有些東西是不正確的。 B編譯好嗎?父pom是多個pom,並將A,B和C定義爲模塊?你在C中使用A的測試類嗎? – Raghuram 2012-08-13 12:16:33

回答

2

Maven的解決傳遞依賴,但不會(通常)自動構建它們。你可以得到行家做你想要的通過與項目列表一起供應--also-make/-am標誌:

mvn -am -pl C clean install 

這是假設A,B,C是一個共享父的所有模塊,並且你會運行命令以上在父目錄中。

+0

當我在項目C上運行'mvn clean install'maven日誌處理項目的順序(A,B,C)時,在控制檯中我看到成功處理的A和B項目;所以在項目C開始處理之前,項目工件已經存在於存儲庫中。 – maks 2012-08-10 23:45:01

+0

錯字,我運行'mvn clean install'在那3個ptojects – maks 2012-08-11 10:42:17

+0

@maks的父項目上,您需要發佈更多關於精確錯誤消息的詳細信息。您的場景是Maven的正常情況;它應該工作。也許版本不一致?如果maven按照正確的順序構建它們,那麼在你的POM中會出現其他的錯誤。 – 2012-08-13 16:22:59