私は現在、ライブラリ プロジェクトを Javadoc も含む .jar ファイルにコンパイルしようとしていますが、少し成功しています。
compile 'com.squareup:otto:1.3.8'
build.gradle ファイルに含めると、自分のライブラリに必要なものが正確に得られます。ライブラリから関数をマウスオーバーすると、含まれている Javadoc が表示されます。これは .jar ファイルです。
現在のコードは正常にコンパイルされますが、最終的に .aar ファイルになり (ライブラリ プロジェクトにリソースがないにもかかわらず)、javadoc も含まれていません (ただし、プロジェクトに記述されています)。
私の現在のbuild.gradleコード:
apply plugin: 'com.android.library'
apply plugin: 'maven'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
minSdkVersion 9
targetSdkVersion 23
versionCode 1
versionName "0.3.5"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
abortOnError false
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
def groupId = 'com.moonbloom'
def artifactId = 'boast'
def version = '0.3.5'
def localReleaseDest = "${buildDir}/release/${version}"
task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = 'javadoc'
from androidJavadocs.destinationDir
}
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.srcDirs
}
uploadArchives {
repositories.mavenDeployer {
pom.groupId = groupId
pom.artifactId = artifactId
pom.version = version
// Add other pom properties here if you want (developer details / licenses)
repository(url: "file://${localReleaseDest}")
}
}
task zipRelease(type: Zip) {
from localReleaseDest
destinationDir buildDir
archiveName "release-${version}.zip"
}
task generateRelease << {
println "Release ${version} can be found at ${localReleaseDest}/"
println "Release ${version} zipped can be found ${buildDir}/release-${version}.zip"
}
generateRelease.dependsOn(uploadArchives)
generateRelease.dependsOn(zipRelease)
artifacts {
archives androidSourcesJar
archives androidJavadocsJar
}
そして、「gradlew clean build generateRelease」を実行するだけで、JCenter にアップロードできる .zip ファイルが作成されます (正常に動作します)。
少し前に StackOverflow でこのコードを見つけましたが、思い通りに動作するように編集できないようで、適切に動作している他の例を見つけることができないようです。
Bintray への自動アップロードは必要ありません (かなりの数のガイドを見てきました)。
これは、現在アップロードされているライブラリです:
https://bintray.com/moonbloom/android/Boast/v0.3.5#files
これは私が望むオットーです:
https://bintray.com/bintray/jcenter/com.squareup%3Aotto/1.3.8/view#files
ここの誰かが私を助けてくれることを願っています。