我目前正在尝试将我的库项目编译成一个也包含 javadocs 的 .jar 文件,并取得了一些成功。
当我包含compile 'com.squareup:otto:1.3.8'
在我的 build.gradle 文件中时,我最终得到了我自己的库想要的东西。当我将鼠标悬停在库中的函数上时,我看到了它们包含的 javadocs,它是一个 .jar 文件。
我当前的代码编译得很好,但我最终得到了一个 .aar 文件(尽管我的库项目中没有任何资源),而且我也没有包含 javadocs(尽管它们是在项目中编写的)。
我当前的 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
我希望这里有人可以帮助我。