2013-07-08 329 views
1

我正在用gradle開發一個項目。我的構建文件到目前爲止幾乎是空的:Gradle項目中的Maven依賴關係

apply plugin: 'java' 
apply plugin: 'eclipse' 

version = '0.1' 

repositories { 
    mavenCentral() 
} 

dependencies { 
    testCompile group: 'junit', name: 'junit', version: '4.+' 
} 

我的項目依賴於Maven項目。正是這個項目:http://git.eclipse.org/c/bpmn2/tree/org.eclipse.bpmn2

我克隆了這個項目到我的工作區,但我不知道在我的build.gradle文件中聲明依賴關係的最佳方式。這是我迄今爲止所做的:

dependencies { 
    compile files ("C:/path/to/org.eclipse.bpmn2-0.7.0-SNAPSHOT.jar") 
} 

但是這樣我就必須手動構建maven項目。有人知道做這種依賴管理的更好方法嗎?

我使用Eclipse Gradle Integration和我注意到一個有趣的Eclipse項目性質:

Gradle - Dependency Management 
[x] Remap Jars to maven projects (requires Gradle 1.1 and m2e) 

這似乎做什麼,我需要。但我不知道如何使用此功能...

在此先感謝。

回答

2

eclipse-integration-gradle plugin替換爲一個Eclipse項目依賴的mavenLocal()JAR依賴。這是迄今爲止我發現的最簡單的方法。請參閱:http://forum.springsource.org/showthread.php?139634-How-to-use-quot-remap-Jars-to-maven-projects-quot-feature

+1

請注意Kris在那裏的評論,特別是:*「...對於要使用的功能,您必須至少將一次jar發佈到某個maven回購站。」*我拉着頭髮,想知道爲什麼當地的工作空間分辨率沒有沒有工作,直到我讀到。一旦我發佈了maven項目1次到我的本地倉庫,那麼Gradle就能夠解決我工作區中的副本。 –

3

如果Maven項目在任何Maven倉庫中都不可用,Gradle無法在任何地方找到它,因此您必須構建它。我至少mvn install它,並告訴搖籃尋找神器在你的本地Maven回購,而不是在一個特定的目錄中,使用

repositories { 
    mavenLocal() 
} 
+0

是的,我已經嘗試過,但在「簽名」階段安裝失敗。但這是另一個問題。無論如何,我想知道是否有一些方法來依賴Maven項目。我會進一步調查我所引用的「重映射罐」屬性。 –

+0

沒有一流的Gradle功能依賴於Maven構建。通常,您會通過本地Maven存儲庫交換構建輸出。或者更好的是,通過更專用的本地或遠程Maven存儲庫,而不是Maven緩存。 –

+0

已經差不多3年了,這是唯一的選擇嗎? – solvingJ