以下はgradleでmavenのようなマルチモジュールのプロジェクトを定義した例.
以下の例では親プロジェクトが"tanu-im",子モジュールとして"desktop-ui"と"core"を想定している.
1. settings.gradleにはプロジェクトの定義を書く
rootProject.name = 'tanu-im' include 'core' include 'desktop-ui'
2. ルートプロジェクト直下のbuild.gradle. dependencyManagementを使いたいので,spring-gradleのdependency-managementプラグインを追加.
group 'org.tanuneko.im' version '1.0-SNAPSHOT' buildscript { repositories { mavenCentral() } dependencies { classpath 'io.spring.gradle:dependency-management-plugin:0.5.6.RELEASE' } }
3. common.gradleとdependencies.gradleの作成 共通の処理をcommon.gradle,プロジェクトの依存ライブラリをdependencies.gradleに定義.
common.gradle
// apply plugin here apply plugin: 'java' apply plugin: 'io.spring.dependency-management' apply from: "${rootProject.projectDir}/gradle/dependencies.gradle" sourceCompatibility = 1.8 targetCompatibility = 1.8
dependencies.gradle
repositories { mavenCentral() } project.ext { // spring springVersion = '4.2.6.RELEASE' // JSON jacksonVersion = '2.7.1' // unit test junitVersion = '4.11' hamcrestVersion = '1.3' // util commonsLang3Version = '3.4' commonsIOVersion = '2.4' // logging slf4jVersion = '1.7.21' logbackVersion = '1.1.5' } dependencyManagement { dependencies { // spring dependency "org.springframework:spring-core:${springVersion}" dependency "org.springframework:spring-test:${springVersion}" // JSON dependency "com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}" dependency "com.fasterxml.jackson.core:jackson-annotations:${jacksonVersion}" // unit test dependency "junit:junit:${junitVersion}" dependency "org.hamcrest:hamcrest-all:${hamcrestVersion}" // util dependency "org.apache.commons:commons-lang3:${commonsLang3Version}" dependency "commons-io:commons-io:${commonsIOVersion}" // logging dependency "ch.qos.logback:logback-classic:${logbackVersion}" dependency "org.slf4j:slf4j-api:${slf4jVersion}" } } dependencies { compile 'org.slf4j:slf4j-api' testCompile 'junit:junit' testCompile 'ch.qos.logback:logback-classic' }
4. 子モジュールの作成.ルートプロジェクト直下に"core", "desktop-ui"のディレクトリを作ったのち,mavenスタンダードアーキタイプの構成を作る(e.g. src/[main|test]/[java|resources].
5. build.gradleを子モジュールのルートに作成.ここには子モジュール独自の依存関係や処理を定義.
0 件のコメント:
コメントを投稿