2013-07-08 9 views
1

Я разрабатываю проект с градиентом. Мой файл сборки почти пуст до сих пор:Зависимость от Maven в проекте Gradle

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, и я заметил одно интересное свойство затмение проекта:

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

Это, кажется, делать то, что мне нужно. Но я не знаю, как использовать эту функцию ...

Заранее спасибо.

ответ

2

eclipse-integration-gradle plugin заменяет mavenLocal() баночку зависимость с зависимостью проекта Eclipse. Это самый простой способ, который я нашел до сих пор. См.: http://forum.springsource.org/showthread.php?139634-How-to-use-quot-remap-Jars-to-maven-projects-quot-feature

+1

Обратите внимание на комментарий Криса, в частности: * «... для того, чтобы функция работала, вы должны публиковать банку хотя бы один раз для некоторого репозитория maven». * Я вытаскивал свои волосы, задаваясь вопросом, почему локальное разрешение рабочей области было Я работаю, пока не прочитаю. Как только я опубликовал проект maven 1 раз на свое местное репо, тогда Gradle смог разрешить копию в моей рабочей области. –

3

Если проект Maven недоступен в любом репозитории Maven, Gradle не может найти его в любом месте, поэтому вам придется его построить. Я бы, по крайней мере mvn install это, и сказать Gradle искать артефакты в вашем Maven репо, а не в определенном каталоге, используя

repositories { 
    mavenLocal() 
} 
+0

Да, я пробовал это, но установка завершается с ошибкой во время фазы «знака». Но это еще одна проблема. В любом случае, я задаюсь вопросом, есть ли какой-то способ зависеть от проектов Maven. Далее я исследую, что свойство «remap jars», которое я цитировал. –

+0

Нет первоклассной функции Gradle, которая зависит от сборки Maven. Как правило, вы обмениваете выходы сборки через локальный репозиторий Maven. Или лучше, через более выделенный локальный или удаленный репозиторий Maven, который также не является кешем Maven. –

+0

Прошло почти три года, это правда, что это единственные варианты? – solvingJ

Смежные вопросы