GitLabでMaven Repositoryを作ってGradleから使う
研究室でJavaのプログラムを書いているのですが、ライブラリを研究室内で共有するときにMaven Repositoryを立てたらいいのではないかと思ったので、GitLab上で使うようにしました。
想定するプログラム
- ライブラリ(MyLib)
- MyLibを使用するプログラム(MyProgram)
MyLibのbuild.gradle
apply plugin: 'idea' apply plugin: 'java' apply plugin: 'maven' def defaultEncoding = 'UTF-8' [compileJava, compileTestJava]*.options*.encoding = defaultEncoding sourceCompatibility = 1.7 targetCompatibility = 1.7 group = 'net.rkmathi' archivesBaseName = 'mylib' version = '1.0.0' repositories { maven { url System.getenv('HOME') + '/.m2/repository' } mavenCentral() } dependencies { testCompile 'junit:junit:4.11' } uploadArchives.repositories.mavenDeployer { repository(url: "file:${projectDir}/maven") }
これでgradle uploadArchives
を実行すると、maven
ディレクトリ以下に出力されます。
- uploadArchivesで出力したら、gitリポジトリにそのディレクトリも追加して、GitLabへプッシュします。
MyProgramのbuild.gradle
apply plugin: 'idea' apply plugin: 'java' apply plugin: 'maven' def defaultEncoding = 'UTF-8' [compileJava, compileTestJava]*.options*.encoding = defaultEncoding sourceCompatibility = 1.7 targetCompatibility = 1.7 group = 'net.rkmathi' archivesBaseName = 'myprogram' version = '1.0.0' repositories { maven { url System.getenv('HOME') + '/.m2/repository' } maven { url 'http://<<GitLab Address>>/<<User Name>>/mylib/raw/master/maven' } mavenCentral() } dependencies { compile 'net.rkmathi:mylib:1.0.0' testCompile 'junit:junit:4.11' } uploadArchives.repositories.mavenDeployer { repository(url: "file:${projectDir}/maven") }
これで、MyProgramからMyLibを使うことができました。
http://<<GitLabのアドレス>>/<<ユーザ名>>/<<プロジェクト名>>/raw/master
をmaven repositoriesの場所に指定することによって、GitLab上にあるライブラリを取得できるようになります。
ワーイ