gradle多模塊打jar,上傳本地倉庫,並給本地其餘項目使用

一、前言

本篇主要講述:gradle多模塊打jar包,上傳本地倉庫,並交由本地其餘項目使用

二、環境準備

  • 操做系統: mac os
  • gradle版本:4.1.0
  • 開發軟件:idea
注:gradle版本不一樣,引入依賴方式可能不一樣,若是你發現本地導包是OK的,可是打包就報錯,能夠看看是否是gradle版本所引發的問題

三、多模塊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包上傳本地倉庫

Diboot - 簡單高效的輕代碼開發框架

相關文章
相關標籤/搜索