簡體   English   中英

eclipse 中的 Maven 項目 - 部署程序集構建失敗

[英]Maven project in eclipse - deployment assembly fails build

抱歉說的太啰嗦了……

我有一些現有的 maven 項目。 我使用 Maven 將它們導入Eclipse -> 導入現有的 Maven 項目。

這給了我 6 個單獨的項目和一個列出所有 6 個項目的項目。 (傘形項目中定義了 6 個模塊,轉換為 6 個 eclipse 項目 - 據我了解 maven 的工作原理)

項目 A 之一需要另外兩個項目 B 和 C(在編譯時和運行時)。

構建路徑 - 在 AI 的構建路徑上有一個庫作為 Maven 依賴項。 它構建得很好。

部署程序集 - 在 A 的部署程序集上,但沒有部署到web-inf/lib條目。 因此,當 tomcat 啟動時,它找不到任何所需的 jars 或項目 B 和 C。 所以我在部署程序集中添加了一個條目:源 - maven 和依賴項部署 - web-inf/lib。 Tomcat 出現,我的項目 A 的 webapp 出現。

然而,這破壞了 eclipse 構建 - 在構建 eclipse 時抱怨: “不支持無效的類路徑發布導出項目條目”

我看到這是因為,在構建路徑下,web-inf/lib 中添加了新條目以在 maven-dependencies 下發布/導出。 刪除它也會從部署程序集中刪除 maven 條目。

唯一的解決方法是在部署程序集中,我在 maven 生成的目標下指定web-inf/lib ,但這會導致項目 B 和 C 的過時副本被拾取。

Why I need this setting is because when I make changes to project B and C in Eclipse and build them in Eclipse I want to see the changes when I am debugging project A. I don't want to run maven builds on B and C again因為它很耗時。

任何幫助深表感謝。

我確實嘗試包含MAVEN2_CLASSPATH_CONTAINER但它總是空的,當 tomcat 運行時它找不到必要的庫。 (順便說一句, MAVEN2_CLASSPATH_CONTATINER設置為什么值?)

這是在 Eclipse Indigo Mac OSX 上。

您需要將相關項目添加到您的部署程序集中。

右鍵單擊項目 -> 屬性 -> 部署程序集 -> 添加

我解決了這樣做:

右鍵單擊我的 eclipse 項目-> Maven -> 更新項目配置...

想通了..但不完全...

所以我在前面提到的部署程序集中添加了maven 依賴項

Maven dependency -> WEB-INF/lib

並且還添加了項目 BC

B -> WEB-INF/lib and C->WEB-INF/lib

不知何故,B 和 C 不會添加到 java 構建路徑中的發布/導出中。 I don't know how eclipse knows to not export B and C from maven repo but to export it from project B and C itself.

不管怎樣,那是改天……現在我很高興:)

通過包含 Maven 依賴項,您將包含項目 B 和項目 C 的依賴項。 事實證明,您還必須手動包含項目 B 和 C。

確切的解決方法是。 項目 A -> 屬性 -> 部署程序集

單擊添加,然后單擊項目。 Select B 和 C。 重建后問題將得到解決。

對於搜索此內容的其他任何人,您似乎也可以手動將以下內容添加到 .classpath 文件中

<classpathentry combineaccessrules="false" kind="src" path="/B"/>

我遇到了這個問題,但我相信這些答案都不能正確解決問題。 相反,他們解決了 m2eclipse(它應該為您管理類路徑和部署程序集)。 對我來說,我在沒有 m2eclipse-wtp(一個單獨的插件)的情況下使用 m2eclipse 的問題。

有關插件詳細信息,請參閱此 SO 答案

如果使用 maven 到部署程序集(項目 -> 屬性 -> 部署程序集),您可以添加相關項目/或 maven java 構建路徑條目

然后檢查這些相關項目是否與 Facets 兼容。 (項目 -> 項目方面)

如果您在 class 路徑中有多個相同 jar 條目,則可能會發生此錯誤。 所以你需要檢查你的類路徑並刪除重復的條目。

暫無
暫無

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

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