Gradle:maven-publishをソース付で行う

社内で使用するライブラリjarを、社内のArtifactoryをMavenリポジトリとして、そこにアップしているのだが、ソース付でアップし、ソース付ダウンロードしないといろいろと面倒である。別にjavadocは無くてもよい。ソースがあれば書いてあるのだから。

eclipseプラグインにソース付でダウンロードすることを伝える

これは、Gradleのeclipseプラグインを使用して、「gradle eclipse」でEclipseのビルドパスを設定してもらう場合の話である。こうする。

apply plugin: 'eclipse'
....
eclipse {
  classpath {
    // ソースもダウンロード
    downloadSources=true
  }
}

すると、Eclipseのビルドパスにソース付で指定してくれる。

ソース付でmaven-publishする

apply plugin: 'maven-publish'
....
task sourceJar(type: Jar) {
    classifier 'sources'
    from sourceSets.main.allJava
}
publishing {
  publications {
    target(MavenPublication) {
      groupId 'com.cm55'
      artifactId 'foobar'
      version '1.0.8'
      from components.java 
      artifact tasks.sourceJar     
    }
  }  
  repositories {
    maven {
      url INHOUSE_REPOSITORY
      credentials {
        username = INHOUSE_USER
        password = INHOUSE_PASSWORD
      }           
    }
  }
}

リポジトリの場所とクレデンシャルは、別途ユーザホーム/.gradle/gradle.propertiesに記述してある。

INHOUSE_REPOSITORY=http://10.8.92.1:8080/artifactory/libs-release-local
INHOUSE_USER=foo
INHOUSE_PASSWORD=bar

以下のように登録される。1.0.7まではソース無しだったが、1.0.8からはソース付となった。