grade文档地址
https://docs.gradle.org/current/userguide/publishing_maven.html#header
任务
-
generatePomFileForPubNamePublication
—生成MavenPom -
为名为PubName的发布创建 POM 文件,填充已知元数据,例如项目名称、项目版本和依赖项。POM 文件的默认位置是build/publications/$pubName/pom-default.xml。
-
publishPubNamePublicationToRepoNameRepository
— PublishToMavenRepository -
将PubName发布发布到名为RepoName的存储库。如果您有一个没有明确名称的存储库定义,RepoName将是“Maven”。
-
publishPubNamePublicationToMavenLocal
— PublishToMavenLocal -
将PubName发布与发布的 POM 文件和其他元数据一起复制到本地 Maven 缓存——通常是$USER_HOME/.m2/repository。
publish
-
取决于:所有任务
publishPubNamePublicationToRepoNameRepository
将所有定义的发布发布到所有定义的存储库的聚合任务。它不包括复制出版物本地Maven缓存。
publishToMavenLocal
-
取决于:所有任务
publishPubNamePublicationToMavenLocal
将所有定义的发布复制到本地 Maven 缓存,包括它们的元数据(POM 文件等)。
在library 项目的build.grade 文件中添加
task androidJavadocs(type: Javadoc) { source = android.sourceSets.main.java.srcDirs ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar" classpath += files(ext.androidJar) } task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) { // 分类器 生成api文档jar classifier = 'javadoc' from androidJavadocs.destinationDir } // 上面的两个task 如果不需要生成文档说明的jar的话 删除上面的两个task // 然后把 publications 中配置的 artifact(androidJavadocsJar) 删除即可 afterEvaluate { project -> tasks.all { task -> if (task.name.equalsIgnoreCase('publishTestLibPublicationToMavenRepository')) { // task.dependsOn 这里表示 后面的任务执行完成以后才执行当前任务(publishTestLibPublicationToMavenRepository) task.dependsOn tasks.getByName('assemble') } } } // 名称 def pom_artifact_id = project.getName() // 分组 def group_id = "com.chao.test" // 本地仓库 也可以设置在线maven仓库 def local_repo_url = "file:///D:/android-library-test" // 版本号 def version_name = "0.0.1" afterEvaluate { publishing { publications { // pushlish任务名字 TestLib // 可以配置多个任务 这里配置了一个 TestLib(MavenPublication) { groupId = group_id artifactId = pom_artifact_id version = version_name artifact("$buildDir/outputs/aar/${pom_artifact_id}-release.aar") artifact(androidJavadocsJar) } } repositories { maven { //name: "Maven" url local_repo_url // 在线maven仓库地址 一般都需要登录才能上传 // 所以需要配置用户名和密码 //credentials { //username = "用户名" //password = "密码" //} } } } } // 推送到配置的maven仓库 // publish`TestLib`PublicationTo`Maven`Repository // TestLib 对应publish任务的名字 // Maven 对象仓库的name 如果配置了一个仓库 没有没配置名字 使用Maven 即可 如果配置了name 这里需要使用name task publishLibToRepo(dependsOn: ['build', 'publishTestLibPublicationToMavenRepository']) { group = group_id }