[英]How to publish in my maven local repository an existing aar with gradle?
[英]How do I publish an AAR to Maven Local With JavaDocs
我需要使用 Gradle 將我的 android 庫 (aar) 發布到 Maven 本地倉庫。 但是發布腳本還需要生成 Javadocs,而只包括公共和受保護的方法和類。
似乎無法在網上找到任何信息,尤其是關於 Javadocs 部分的信息...幫助,我以前從未發布過庫。
好的,經過大量研究,我找到了解決方案,所以如果有人需要,我將在這里分享。
(我不希望你像我一樣感到沮喪)。
1) 在項目中創建一個 android 庫作為新模塊。
2) 在您的庫的構建 gradle 中放置以下代碼:
plugins {
id 'com.android.library'
id 'maven-publish'
}
android {
nothing special here...
}
這是創建 Javadocs 的代碼(仍在 build.gradle 中):
task androidJavadocs(type: Javadoc){
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
android.libraryVariants.all{ variant->
if (variant.name == 'release'){
owner.classpath += variant.javaCompileProvider.get().classpath
}
}
// excluding a specific class from being documented
exclude '**/NameOfClassToExclude.java'
title = null
options{
doclet = "com.google.doclava.Doclava"
docletpath = [file("libs/doclava-1.0.6.jar")]
noTimestamp = false
// show only Protected & Public
memberLevel = JavadocMemberLevel.PROTECTED
}
}
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs){
archiveClassifier.set('javadoc')
from androidJavadocs.destinationDir
}
task androidSourcesJar(type: Jar){
archiveClassifier.set('sources')
from android.sourceSets.main.java.srcDirs
}
這是將庫發布到 MavenLocal(仍在 build.gradle 中):
afterEvaluate {
publishing{
publications{
release(MavenPublication){
groupId = "com.example.mylibrary"
artifactId = "mycoollibrary"
version = "1.0"
// Applies the component for the release build variant
from components.release
// Adds javadocs and sources as separate jars.
artifact androidSourcesJar
artifact androidJavadocsJar
}
}
}
}
您的默認依賴項塊:
dependencies {
your dependencies...
}
3) 現在您可以下載doclava doclet :
提取 zip,復制 doclava-1.0.6.jar 並將其粘貼到 LibraryName/libs 文件夾中(可以使用項目視圖找到)。 如果你想能夠使用@hide,你只需要 doclava。 使用此注釋,您可以從 Javadocs 中排除特定方法。
4) 構建和發布你的庫:在 android studio 右上角找到 gradle 選項卡,或從工具欄 View->Tool Windows->Gradle 中找到它。
現在找到你的庫 -> 任務 -> 發布 -> publishReleasePublicationToMavenLocal。
5)從另一個項目使用庫: Go 到 settings.gradle 文件(消費項目)並添加 MavenLocal() 作為dependencyResolutionManagement塊中的第一個存儲庫。
在模塊內部構建 gradle 將您的庫添加為依賴項:
dependencies{
implementation 'com.example.mylibrary:mycoollibrary:1.0'
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.