簡體   English   中英

在Eclipse中,如何從一個具有依賴項的另一個項目中排除一個maven項目的測試文件夾?

[英]In Eclipse, how do I exclude test folder of one maven project from another project that has as a dependency?

我在同一個工作區中將兩個maven項目導入了Eclipse。 兩者都有一個具有相同名稱和包的類,但是在每個項目中的不同位置和不同的實現。 我們將此類com.namespace.Factory

項目A在其測試文件夾下具有Factory,即: /src/test/java/com/namespace/Factory.java

項目B在其主要源文件夾下具有Factory,即: /src/main/java/com/namespace/Factory.java

還有一個項目C,它依賴於兩者。 項目C還使用項目B中的Factory進行某些單元測試。 現在的問題是,Eclipse無法編譯Project C,因為它無法區分兩個Factory類。 如果我在命令行中構建所有項目,則它們沒有問題。

您可能會認為Eclipse會忽略Project A Factory類,因為它正在測試中。

我正在使用m2e插件。 我當前的解決方法是設置m2e,使其不解析工作空間中P​​roject C的依賴項。 這將強制其下載將不進行測試的jar。 但是,這意味着我要更改A或B,必須手動安裝A或B將最新的jar推送到本地存儲庫,並更新Project C的依賴項以獲取最新的jar。

有沒有辦法從Project C的構建路徑中排除Project A測試文件夾,以便我可以繼續解析工作空間中的所有內容? 感覺像是Eclipse破壞了Maven項目的基礎。

我認為您只是受到上游錯誤影響的另一個用戶: https : //bugs.eclipse.org/bugs/show_bug.cgi?id=376616

總而言之,錯誤報告討論包括:

JDT每個Eclipse項目僅實現一個構建路徑。 這幾乎不可能改變,因為這是基本的設計選擇,許多API和實現細節都依賴於此。

好吧,但是我想那並不能真正回答您的問題。 因此,我在這里看到多個選項,具體取決於您可能對項目產生的影響:

  • 嘗試重命名其中一個類=>名稱將是唯一的
  • 或者,如果這些類包含基本相同的功能,使用項目之間的依賴項,或者甚至創建新的類,那么其他兩個類將依賴
  • 這幾乎是我現在想到的

也許您可以嘗試以下操作:在項目A的“屬性”對話框中(通過右鍵單擊該項目,然后單擊“屬性”到達該對話框),
單擊左側的部署程序集。
Eclipse將顯示所有源文件夾。
選擇測試文件夾(/ test),然后單擊“刪除”。

暫無
暫無

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

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