2012-11-14 52 views
2

我在Eclipse中創建了一個新的Maven項目。這工作正常,直到我需要添加一個依賴到另一個Eclipse項目,一個遺留的實用程序項目,它沒有一個pom.xml,並沒有一個典型的Maven項目的目錄結構。 (它有一個典型的eclipse Java項目的目錄結構)。這個其他項目與Maven項目位於同一Eclipse工作區中。Maven/Eclipse插件:讓新的Maven項目依賴於傳統的非Maven項目的最簡單方法是?

在看着這個其他職位,似乎通常的解決方案是建立在其他項目中的JAR和Maven的安裝。然而,我正在Maven項目中編寫代碼的同時積極修改工具項目中的代碼,所以我不能只安裝一次jar來滿足依賴關係。

什麼是處理這個問題,這樣我可以在這兩個項目中同時進行編碼,並同時獲得Maven構建乾淨最簡單的方法? (當然,Eclipse可以構建幾乎只是一個項目依賴罰款。)

UPDATE

使用建立幫助插件的公用事業項目源文件夾添加到我的聚甲醛是對解決方案的可行路徑,但那麼我需要將該實用程序項目的所有依賴項更新到我的新Mavne項目中,該項目開始使整個過程耗時(並且不是我想要的依賴關係鏈)。我認爲,如果我會添加所有的依賴項,那麼構建幫助者的建議就可以奏效。

現在,我構建了實用工程jar並將其安裝到maven中。這原來是最快的解決方案。我將嘗試在沒有修改其結構(如下面的FrVaBe所建議的)的情況下對實用程序項目進行修改,然後查看是否可以在之後連接這些修補程序。

我要保持這種開放式的問題,直到我有一個完整的解決方案,它可以報回,因爲我認爲這是一個問題,別人就會有(試圖遺留項目與新Maven項目集成)。

回答

3

對於開發時間,您可以添加依賴作爲System Dependency。在這種情況下,它將通過文件路徑(可以是開發中的utility.jar文件的路徑)來解決。

它加入作爲在上面的鏈接描述,例如:

<dependencies> 
    <dependency> 
     <groupId>my-utility</groupId> 
     <artifactId>my-utility</artifactId> 
     <version>1.0</version> 
     <scope>system</scope> 
     <systemPath>${somewhere}/lib/my-utility.jar</systemPath> 
    </dependency> 
    </dependencies> 

系統依賴性的行家則有時操作特殊。例如。他們將不會被列入戰爭包!因此,當你完成後,我強烈建議將你的實用程序庫安裝到maven資源庫或將其部署到資源庫管理器(Nexus/Artifactory)。

+0

我對Maven很新穎 - 你能解釋一下如何添加系統依賴嗎? –

+0

我試圖添加系統依賴項,將''設置爲類文件的根文件夾。但是,似乎Maven希望該路徑是一個jar文件,而不是一個文件夾。 –

+1

@SamGoldberg是的,它必須是你的實用jar文件。如果你想添加不同的源/資源目錄,你可以嘗試[build-helper-maven-plugin](http://mojo.codehaus.org/build-helper-maven-plugin/plugin-info.html),但是我不會使用這個項目重疊。 – FrVaBe

0

我認爲這個http://www.avajava.com/tutorials/lessons/how-do-i-add-a-project-as-a-dependency-of-another-project.html?page=1鏈接應該有所幫助。 它是一步一步的教程。

+0

這個鏈接顯示瞭如何將2個Maven項目連接在一起,並且需要將jar從一個安裝到Maven中。因此,這不符合我的用例,其中(a)其中一個項目是遺留的非Maven項目(可能需要很多工作才能對maven進行改造而不會在CSV中創建混亂)和(b)我希望能夠在Eclipse中更新源代碼,而無需在每次運行'mvn test'時手動構建一個jar。 –

1

您可以將實用程序項目的src文件夾添加到您在eclipse中的工作項目中。爲了您的發展目的。

right click on Working project 
go to properties and choose java build path 
go to source tab 
Add your utility project src folder to that. 

稍後,您可以將您的jar安裝爲maven依賴項。

+0

這已經完成。但是當我試圖做的時候:'mvn test'確保一切正常,失敗了,因爲它沒有解決Eclipse項目依賴關係。我試圖找到一種方法,可以將它設置爲從'mvn'命令以及Eclipse內建立。 –

相關問題