代碼庫上傳遠程倉庫利器(maven-pubish/maven)
maven-publish(推薦)
- 如果想把代碼發佈到私有倉庫或公有倉庫,那麼可以利用maven-publish這個工具非常方便地進行上傳
- maven-publish官方文檔:https://docs.gradle.org/current/userguide/publishing_maven.html
實踐參考
- 以idea工具爲例
- 參考配置如下(gradle5.6)
plugins { id 'java-library' id 'maven-publish' } repositories { mavenLocal() maven { url = 'http://repo.maven.apache.org/maven2' } } dependencies { compile 'org.apache.httpcomponents:httpclient:4.5.3' compile 'org.slf4j:slf4j-api:1.7.21' compile 'org.slf4j:slf4j-simple:1.7.21' } group = 'com.github.wxpay' version = '3.0.9' description = 'wxpay-sdk' sourceCompatibility = '1.8' tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } // 源碼 task sourcesJar(type: Jar) { from sourceSets.main.allJava archiveClassifier = 'sources' } // javadoc task javadocJar(type: Jar) { from javadoc archiveClassifier = 'javadoc' } publishing { publications { mavenJava(MavenPublication) { artifactId = 'wxpay-sdk' from(components.java) artifact sourcesJar artifact javadocJar } } repositories { maven { url = '你的倉庫地址' credentials { username '倉庫賬號' password '倉庫密碼' } } } } javadoc { if(JavaVersion.current().isJava9Compatible()) { options.addBooleanOption('html5', true) } // 編碼最好都統一爲utf-8 options{ encoding "UTF-8" charSet 'UTF-8' author true version true } }
- 之後在根目錄下執行一下命令 gradlew publishMavenJavaPublicationToMavenRepository
- 以上特別注意編碼的設置,否則可能出現編碼GBK的不可映射字符的錯誤,如果設置後還是出現同樣的錯誤,那麼請檢查下idea的文件配置
- 如果不需要生成javadoc或者源碼,直接把相關配置去掉即可
maven(舊插件)
- maven可用於庫的發佈
- 官方介紹: https://docs.gradle.org/current/userguide/maven_plugin.html#header
實踐參考
-
本例以發佈android庫爲例
-
在庫的build.gradle同級目錄下創建文件maven.gradle
apply plugin: 'maven' // 指定編碼 tasks.withType(JavaCompile) { options.encoding = "UTF-8" } // 打包源碼 task androidSourcesJar(type: Jar) { classifier = 'sources' from android.sourceSets.main.java.srcDirs } artifacts { archives androidSourcesJar } afterEvaluate { project -> uploadArchives { repositories { mavenDeployer { //遠程倉庫的地址 repository(url: "倉庫地址") { //nexus登錄的用戶名和密碼 authentication(userName: "admin", password: "admin") } pom.project { //項目引用設置 groupId 'com.gosuncn.util' artifactId 'glog' version '1.0.1' packaging 'aar'//打包的格式 } } } } }
-
之後在要發佈的庫的目錄下的build.gradle中引入
apply from: './maven.gradle' ...
-
最後在工程根目錄下執行任務gradlew uploadArchives即可上傳到遠程倉庫
maven和maven-publish的關係
- 實際上maven-publish是maven的升級版,官方也是推薦使用maven-publish,但由於maven出現早,因此大部分文章都是以maven做介紹,不管哪個,只要夠用就好