[英]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
並且還添加了項目 B和C :
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.