当前位置:   article > 正文

Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ⑧ ( 设置 Gradle 插件模块 | 将 Gradle 插件上传到自建 Maven 仓库 )_本地gradle缓存上传库

本地gradle缓存上传库

一、设置 Gradle 插件模块

在 【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包 , 文档 , 代码 文件 ;

    • name : 任意字符串 , 一般设置为远程仓库的名称 ;
    • url : Maven 仓库的 url 地址 ;
    • credentials : 设置访问 Maven 仓库的账号和密码 ;
      1. plugins {
      2. id 'java-library'
      3. id 'kotlin'
      4. id 'groovy'
      5. }
      6. java {
      7. sourceCompatibility = JavaVersion.VERSION_1_7
      8. targetCompatibility = JavaVersion.VERSION_1_7
      9. }
      10. dependencies {
      11. implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
      12. implementation gradleApi()
      13. implementation localGroovy()
      14. implementation fileTree(dir: 'libs', includes: ['*.jar'])
      15. }
      16. // 指定自定义 Gradle 插件的分组
      17. group 'kim.hsl.plugin'
      18. // 指定自定义 Gradle 插件的版本号
      19. version '0.1'
      20. // 自定义 Gradle 插件的名称 , 默认为工程名
      21. // 也可以在 publishing / publications 脚本块中 自己指定
      22. // 用于将 插件上传到 远程仓库 或者 本地仓库 中
      23. apply plugin: 'maven-publish'
      24. // 自定义源码打包任务
      25. // 自定义 Jar 类型的 Gradle 任务
      26. // 将源码打包到 jar 包中
      27. task sources2Jar(type: Jar) {
      28. // 指明要打的 jar 包名称
      29. // 最终打包的名称是 plugin-0.1-sources.jar
      30. baseName 'plugin'
      31. // 指定分类器 , 与其它 jar 包进行区分
      32. classifier 'sources'
      33. // 设置打包哪些文件
      34. // 这里设置的是 main 目录下的所有文件
      35. from sourceSets.main.allSource
      36. }
      37. // 自定义文档打包任务
      38. // 自定义 Jar 类型的 Gradle 任务
      39. // 将文档打包到 jar 包中
      40. task document2Jar(type: Jar, dependsOn: [javadoc, groovydoc]) {
      41. // 指明要打的 jar 包名称
      42. // 最终打包的名称是 plugin-0.1-doc.jar
      43. baseName 'plugin'
      44. // 指定分类器 , 与其它 jar 包进行区分
      45. classifier 'doc'
      46. // 设置打包哪些文件
      47. // 这里设置的是 javadoc 和 groovydoc 任务的输出目录
      48. from javadoc.destinationDir, groovydoc.destinationDir
      49. }
      50. // 配置 工程工件 对应的 jar 包产出 配置
      51. // 这里将 文档打包 和 源码打包 后的 jar 包作为输出
      52. artifacts {
      53. archives sources2Jar
      54. archives document2Jar
      55. }
      56. // 发布到 远程/本地仓库 相关配置
      57. publishing {
      58. publications {
      59. // plugin 函数是随意命名的函数
      60. plugin(MavenPublication) {
      61. // 配置上传内容
      62. // components.java 是打包的 jar 包
      63. from components.java
      64. // 指定自定义 Gradle 插件名称
      65. artifactId 'plugin'
      66. // 上传源码
      67. artifact sources2Jar
      68. // 上传文档
      69. artifact document2Jar
      70. // 自定义 pom 节点
      71. pom.withXml {
      72. /* 添加如下节点
      73. <licenses>
      74. <license>
      75. <name>Apache License, Version 2.0</name>
      76. <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
      77. <distribution>repo</distribution>
      78. <comments>A business-friendly OSS license</comments>
      79. </license>
      80. </licenses>
      81. */
      82. // 先创建 root 根节点
      83. def root = asNode()
      84. // 向根节点中添加 <licenses> 节点
      85. //<licenses> 节点中添加 <license> 节点
      86. def licensesNode = root
      87. .appendNode("licenses") // <licenses> 节点
      88. .appendNode("license") // <license> 节点
      89. //<license> 节点 配置 name 节点属性
      90. licensesNode.appendNode("name", "Apache License, Version 2.0")
      91. //<license> 节点 配置 url 节点属性
      92. licensesNode.appendNode("url", "https://www.apache.org/licenses/LICENSE-2.0.txt")
      93. //<license> 节点 配置 distribution 节点属性
      94. licensesNode.appendNode("distribution", "repo")
      95. //<license> 节点 配置 comments 节点属性
      96. licensesNode.appendNode("comments", "A business-friendly OSS license")
      97. }
      98. }
      99. }
      100. // 配置上传到哪个 Maven 仓库
      101. // 默认为本地 Maven 仓库
      102. repositories {
      103. maven {
      104. // 任意字符串名称
      105. name "MyRepository"
      106. // Maven 仓库的 url 地址
      107. // 点击 Maven 仓库的 URL 列的 copy 按钮获取
      108. url "http://localhost:8081/repository/MyRepository/"
      109. // 配置上传的身份
      110. // 就是 Maven 私服的账号密码
      111. credentials {
      112. username = "admin"
      113. password = "admin123"
      114. }
      115. }
      116. }
      117. }

      二、执行发布 Gradle 插件任务将 Gradle 插件上传到自建 Maven 仓库

    • 构建脚本进行上述修改后 , 同步脚本 , 就会在 Gradle 面板中生成 " publishPluginPublicationToMyRepositoryRepository " 任务 ;
      
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/266248
推荐阅读
相关标签
  

闽ICP备14008679号