GradleでMavenを扱うのがMavenプラグインだと思うが、Javaプラグインを普通に使うだけならMavenプラグインを指定する必要は無いっぽい^^;
|
Javaプラグインの依存ライブラリーで外部モジュール(Mavenのアーティファクト)を指定する場合、そのモジュールをMavenリポジトリーから取ってくることになる。
リポジトリーはrepositoriesで指定する。
大抵の場合は、mavenCentralだけあれば足りる。
apply plugin: 'java' repositories { mavenCentral() }
自分のマシン上のローカルリポジトリーにあるモジュールを使いたい場合はmavenLocalを指定する。
(他のライブラリーを「mvn install」でローカルリポジトリーに登録していて、それを使いたいような場合)
apply plugin: 'java' repositories { mavenCentral() mavenLocal() }
URLを直接指定することも出来る。
apply plugin: 'java' repositories { mavenCentral() maven { url "http://repository.jboss.org/nexus/content/groups/public-jboss" // JBoss url "http://repository.apache.org/content/groups/public" // Apache } }
Javaプラグインでビルドするとjarファイルが生成される。
このファイルの名前はMavenで生成するのと同様のルールになっている気がする。
自分のプロジェクトのMaven用のグループ名・アーティファクト名・バージョンは以下のようにして指定する。
apply plugin: 'java' group = 'com.example' //artifact = 'zzz' //archivesBaseName = 'zzz' version = '0.1-SNAPSHOT'
groupでグループ名(グループID)を指定するが、jarファイル名には使われない。リポジトリーへ登録する際には使われる。
以前は「artifact」でアーティファクト名(アーティファクトID)を指定できたようだが、Gradle1.8では指定できない。
Gradle2.2.1では「archivesBaseName」も使用できない。[2015-10-11]
参考: wadahiroさんのGradleでMavenリポジトリにデプロイする時のメモ
Mavenプラグインを入れると、installタスクが使える。
「mvn install」と同様に、ローカルリポジトリーにjarファイルを格納する。
apply plugin: 'java' apply plugin: 'maven' group = 'com.example' //archivesBaseName = 'zzz' version = '0.1-SNAPSHOT'
$ gradle install
リポジトリーとしてURLを指定し、その場所にアーカイブをインストールすることが出来る。[2015-10-11]
URLにはリモートの他にローカルディレクトリーも指定可能。
apply plugin: 'java'
apply plugin: 'maven'
group = 'com.example'
version = '0.0.1'
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file:///home/hishidama/site")
}
}
}
相対パスで指定したい場合、$buildDir
という変数が使える。「url:
"file://$buildDir/../site"
」の様に指定する。[2015-10-13]
$buildDir
は「プロジェクト/build」のディレクトリーを指している。
$ gradle uploadArchives
上記のようにして作ったリポジトリーおよびアーカイブは、他のプロジェクトから以下のように指定して使うことが出来る。
〜 repositories { maven { url 'file:///home/hishidama/site' } } 〜 dependencies { compile group: 'com.example', name: 'zzz', version: '0.0.1' }
これでjarファイルはダウンロードできるのだが、ソースはダウンロードできない。[2015-10-13]
デフォルトでは、ソースのアーカイブは生成されないらしい。
uploadArchivesでなくpublishを使ってごちょごちょやると、ソースのアーカイブも生成される。
publishは、指定した場所(リポジトリー)にアーカイブを作成する新しい方法らしい。[2015-10-13]
(publishは「出版する」といった意味らしい)
sourceJarタスクを併せて定義することで、「プロジェクト名-バージョン-sources.jar」というソースのアーカイブも生成される。
apply plugin: 'maven'
apply plugin: 'maven-publish'
〜
task sourceJar(type: Jar) {
from sourceSets.main.allJava
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
artifact sourceJar {
classifier "sources"
}
}
}
repositories {
maven {
url "$buildDir/../../mvnrepository"
}
}
}
$ gradle publish