Создание мульти-Java-проекта с использованием Gradle

Я рву себе волосы из-за этого. Я убрал свои скрипты обратно к коду, представленному на страницах руководства по Gradle, так как я думаю, что либо делаю что-то в корне неправильно, либо неправильно понимаю, как предполагается структурировать многопроектное приложение с использованием gradle.

У меня есть три java-проекта в eclipse, все три содержат сценарий build.gradle и только один содержит сценарий settings.gradle. Структура выглядит следующим образом:

Scripts
-- build.gradle
-- settings.gradle
Database
-- build.gradle
Services
-- build.gradle

Я пытаюсь построить проект «База данных» и «Службы», используя сценарий сборки в проекте «Сценарии». Чтобы создать дерево проекта, у меня есть следующий код в settings.gradle:

include 'Services', 'Database'

project (':Services').projectDir = new File(settingsDir, "../Services")
project (':Database').projectDir = new File(settingsDir, "../Database")

Репликация кода в многопроектном учебнике (документы gradle), я пытаюсь заставить каждый из сценариев сборки распечатать некоторый текст, чтобы убедиться, что все настроено правильно. Моя конечная цель - правильно построить зависимости при выполнении 'eclipseClasspath', чтобы все проекты правильно компилировались в eclipse. Однако текст распечатывается не так, как я ожидал!

Ниже приводится то, что содержится в трех сценариях сборки:

Сценарии build.gradle

allprojects {
    task hello << { task -> println "I'm $task.project.name" }
}

subprojects {
    hello << {println "- I depend on Scripts"}
}

База данных build.gradle

hello.doLast { 
    println "- I'm inside database" 
}

Services build.gradle

hello.doLast { 
    println "- I'm inside services" 
}

] В проекте 'Scripts', когда я запускаю 'gradle -q hello', я получаю следующие результаты:

I'm Scripts
I'm AnprDatabase
- I depend on Scripts
I'm Database
- I depend on Scripts

Почему текст '- Я внутри базы данных' и '-Я внутри служб' не отображается ? Я немного озадачен этим. Я могу только предполагать, что это как-то связано со структурой моего проекта. Может кто-нибудь подтвердить, что это так? Если нет, то в чем проблема? Как уже упоминалось, я сократил свои сценарии до этого простого примера, так как я не мог заставить зависимости запускаться в каждом сценарии сборки проекта с использованием одной и той же структуры.

Большое спасибо за любую предложенную помощь.

7
задан ScreamingMage 18 August 2011 в 19:26
поделиться