本篇主要講述:gradle多模塊打jar包,上傳本地倉庫,並交由本地其餘項目使用
注:gradle版本不一樣,引入依賴方式可能不一樣,若是你發現本地導包是OK的,可是打包就報錯,能夠看看是否是gradle版本所引發的問題
【gradle多環境講解,官方文檔】,官方文檔描述了多模塊配置中的幾個閉包的常規使用
allprojects{}, subprojects{}。前者配置應用包括root模塊在內的全部模塊,後者只應用子模塊,詳細的使用規則進入官方文檔詳細瞭解html
項目1結構git
|──root-project-one 項目1名稱 ├── common-project 基礎子項目 │ └── build.gradle 基礎子項目配置文件 ├── example-project 依賴common項目的示例項目 │ └── build.gradle 依賴common項目的示例項目的配置文件 ├── build.gradle 項目1的配置文件
項目2結構github
|──root-project-two 項目2名稱 ├── build.gradle 項目2的配置文件(須要引用項目1中的example-project)
各個項目的配置文件(此處只列舉主要配置)閉包
root-project-one/build.gradleapp
//全部子項目共享配置 subprojects { apply plugin: 'maven' // 獲取本地倉庫路徑 def localRepositoryPath = 'file://' + new File(System.getProperty('user.home'), '.m2/repository').absolutePath //打包至本地倉庫配置 uploadArchives { repositories { //mavenDeployer 須要依賴 apply plugin: 'maven' mavenDeployer { repository(url: localRepositoryPath) pom.project { name = project.name // 當前項目名稱 version = project.version //當前項目版本 0.0.1 groupId = project.group // 當前項目組 com.xxx } } } } }
common-project/build.gradle框架
//jar SKIPPED 問題,添加以下配置 jar.enabled=true //(不設置可能會沒法打jar)
example-project/build.gradlemaven
dependencies { //依賴 common-project compile project(':common-project') } //jar SKIPPED 問題,添加以下配置 jar.enabled=true
上述配置完畢後刷新gradle配置,進入每一個子模塊中打開命令行執行以下命令進行打包ide
gradle -q uploadArchives
或者打開右側的gradle面板,到模塊下的task>upload>uploadArchives,點擊執行便可生成相關jar性能
本地項目引用jar
root-project-two /build.gradlegradle
repositories { //優先查找本地maven庫,性能最好 mavenLocal() //注:引用本地jar包時,必須加上本地maven庫 maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} } dependencies { //依賴本地jar compile('com.xxx:example-project:0.0.1') }
- gradle版本能夠經過修改項目下gradle>wrapper>gradle-wrapper.properties文件的distributionUrl對應地址的版原本修改,修改版本後須要刷新gradle
- 當多模塊相互依賴,打包給本地其餘項目使用的時候,相互依賴的模塊建議都打jar包上傳本地倉庫