Gradle構成のGroovyプロジェクトで軽めのDSLを作ったので、他のJavaプロジェクトでMaven参照したい。
つまり、Gradleからmvn installと同等のことをしたいわけだが、uploadArchivesでmavenDeployerを使ってやれば良い。
groovy|build.gradle
apply plugin: 'groovy'
apply plugin: 'eclipse'
apply plugin: 'maven'
group = 'me.stormcat'
version = '0.0.1'
task sourcesJar(type: Jar, dependsOn:classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
repositories {
mavenCentral()
}
artifacts {
archives sourcesJar
}
dependencies {
compile 'org.codehaus.groovy:groovy-all:2.2.0'
testCompile 'junit:junit:4.11'
}
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file:${System.getProperty('user.home')}/.m2/repository")
}
}
}
Mavenリポジトリにインストールするからといってpomを作る必要はない。はmavenで言うところのgroupIdはgroupで設定でき、artifactIdは未設定ならプロジェクト名がそのまま利用されるが、指定したいのであればarchivesBaseNameを設定すればartifactIdとして利用される。
また、versionに-SNAPSHOTを付加すれば勝手にSNAPSHOTデプロイにしてくれる。
sourcesJarタスクを設定しておけば、source-jarもデプロイされる。
ビルド実行してローカルインストールは以下のコマンドでOk。
$ gradle uploadArchives