赞
踩
在 【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ⑦ ( 登录 Maven 私服 | Maven 私服初始化设置 | 创建 Maven 仓库 ) 博客中 , 在 Maven 私服中创建了 Maven 仓库 " MyRepository “ , 地址为 ” http://localhost:8081/repository/MyRepository/ " ;
在 Gradle 插件模块的 build.gradle 构建脚本 的 publishing/publications 脚本块 中 , 配置如下代码 ,
在 Gradle 面板中执行该 " publishPluginPublicationToMyRepositoryRepository " 任务 , 就会自动将插件内容上传到创建的 maven 仓库中 ;
上传完成后 , 在 Maven 私服的 Web 界面 , 点击 MyRepository 仓库 ,
进入 HTML View 界面 , 此时已经可以看到上传的 jar包 , 文档 , 代码 文件 ;
- plugins {
- id 'java-library'
- id 'kotlin'
- id 'groovy'
- }
-
- java {
- sourceCompatibility = JavaVersion.VERSION_1_7
- targetCompatibility = JavaVersion.VERSION_1_7
- }
-
- dependencies {
- implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
- implementation gradleApi()
- implementation localGroovy()
- implementation fileTree(dir: 'libs', includes: ['*.jar'])
- }
-
- // 指定自定义 Gradle 插件的分组
- group 'kim.hsl.plugin'
-
- // 指定自定义 Gradle 插件的版本号
- version '0.1'
-
- // 自定义 Gradle 插件的名称 , 默认为工程名
- // 也可以在 publishing / publications 脚本块中 自己指定
-
-
- // 用于将 插件上传到 远程仓库 或者 本地仓库 中
- apply plugin: 'maven-publish'
-
- // 自定义源码打包任务
- // 自定义 Jar 类型的 Gradle 任务
- // 将源码打包到 jar 包中
- task sources2Jar(type: Jar) {
- // 指明要打的 jar 包名称
- // 最终打包的名称是 plugin-0.1-sources.jar
- baseName 'plugin'
- // 指定分类器 , 与其它 jar 包进行区分
- classifier 'sources'
- // 设置打包哪些文件
- // 这里设置的是 main 目录下的所有文件
- from sourceSets.main.allSource
- }
-
- // 自定义文档打包任务
- // 自定义 Jar 类型的 Gradle 任务
- // 将文档打包到 jar 包中
- task document2Jar(type: Jar, dependsOn: [javadoc, groovydoc]) {
- // 指明要打的 jar 包名称
- // 最终打包的名称是 plugin-0.1-doc.jar
- baseName 'plugin'
- // 指定分类器 , 与其它 jar 包进行区分
- classifier 'doc'
- // 设置打包哪些文件
- // 这里设置的是 javadoc 和 groovydoc 任务的输出目录
- from javadoc.destinationDir, groovydoc.destinationDir
- }
-
- // 配置 工程工件 对应的 jar 包产出 配置
- // 这里将 文档打包 和 源码打包 后的 jar 包作为输出
- artifacts {
- archives sources2Jar
- archives document2Jar
- }
-
- // 发布到 远程/本地仓库 相关配置
- publishing {
- publications {
- // plugin 函数是随意命名的函数
- plugin(MavenPublication) {
- // 配置上传内容
- // components.java 是打包的 jar 包
- from components.java
-
- // 指定自定义 Gradle 插件名称
- artifactId 'plugin'
-
- // 上传源码
- artifact sources2Jar
- // 上传文档
- artifact document2Jar
-
- // 自定义 pom 节点
- pom.withXml {
- /* 添加如下节点
- <licenses>
- <license>
- <name>Apache License, Version 2.0</name>
- <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
- <distribution>repo</distribution>
- <comments>A business-friendly OSS license</comments>
- </license>
- </licenses>
- */
-
- // 先创建 root 根节点
- def root = asNode()
-
- // 向根节点中添加 <licenses> 节点
- // 向 <licenses> 节点中添加 <license> 节点
- def licensesNode = root
- .appendNode("licenses") // <licenses> 节点
- .appendNode("license") // <license> 节点
-
- // 为 <license> 节点 配置 name 节点属性
- licensesNode.appendNode("name", "Apache License, Version 2.0")
- // 为 <license> 节点 配置 url 节点属性
- licensesNode.appendNode("url", "https://www.apache.org/licenses/LICENSE-2.0.txt")
- // 为 <license> 节点 配置 distribution 节点属性
- licensesNode.appendNode("distribution", "repo")
- // 为 <license> 节点 配置 comments 节点属性
- licensesNode.appendNode("comments", "A business-friendly OSS license")
- }
- }
- }
-
- // 配置上传到哪个 Maven 仓库
- // 默认为本地 Maven 仓库
- repositories {
- maven {
- // 任意字符串名称
- name "MyRepository"
- // Maven 仓库的 url 地址
- // 点击 Maven 仓库的 URL 列的 copy 按钮获取
- url "http://localhost:8081/repository/MyRepository/"
- // 配置上传的身份
- // 就是 Maven 私服的账号密码
- credentials {
- username = "admin"
- password = "admin123"
- }
- }
- }
- }
构建脚本进行上述修改后 , 同步脚本 , 就会在 Gradle 面板中生成 " publishPluginPublicationToMyRepositoryRepository " 任务 ;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。