Gradle构建多模块项目

1:创建项目

首先创建项目

mkdir spring-cloud
cd spring-cloud
gradle init

然后创建多模块

mkdir -p spring-cloud-server/src/main/java
mkdir -p spring-cloud-server/src/test/java
mkdir -p spring-cloud-client/src/main/java
mkdir -p spring-cloud-client/src/test/java

2:修改gradle配置文件

修改根目录下的 settings.gradle 文件,引入子模块:

include 'spring-cloud-server','spring-cloud-client'  

修改根目录下的 build.gradle 文件

// 所有子项目的通用配置
subprojects { 
    apply plugin: 'java'
    apply plugin: 'idea'

    version = '1.0'  

    // JVM 版本号要求
    sourceCompatibility = 1.7
    targetCompatibility = 1.7  

    // java编译的时候缺省状态下会因为中文字符而失败
    [compileJava,compileTestJava,javadoc]*.options*.encoding = 'UTF-8'
    
    //定义版本号
    ext {  
        springVersion = '3.2.11.RELEASE'  
        hibernateVersion='4.3.1.Final'  
    } 

    repositories {
        mavenCentral()
    }

    jar {
        manifest {
            attributes("Implementation-Title": "Gradle")
        }
    }

    configurations {
        // 所有需要忽略的包定义在此
        all*.exclude group: 'commons-httpclient'
        all*.exclude group: 'commons-logging'
        all*.exclude group: 'commons-beanutils', module: 'commons-beanutils'
    }

    dependencies {
        // 通用依赖
        compile(  
           
        )

        // 依赖maven中不存在的jar
        ext.jarTree = fileTree(dir: 'libs', include: '**/*.jar')
        ext.rootProjectLibs = new File(rootProject.rootDir, 'libs').getAbsolutePath()
        ext.jarTree += fileTree(dir: rootProjectLibs, include: '**/*.jar')

        compile jarTree

        // 测试依赖
        testCompile(  
                "org.springframework:spring-test:$springVersion",  
                "junit:junit:4.11"  
        ) 
    }

    // 显示当前项目下所有用于 compile 的 jar.
    task listJars(description: 'Display all compile jars.') << {
        configurations.compile.each { File file -> println file.name }
    }
}

在spring-cloud-server下添加build.gradle 文件

cd spring-cloud-server 
vi build.gradle
archivesBaseName = 'spring-cloud-server'

// 还可以定义其他配置,这里直接继承父模块中的配置

spring-cloud-client同理

3. 编译项目

查看所有 jar:

gradle listJars

查看各个模块的依赖

gradle :spring-cloud-server:dependencies
gradle :spring-cloud-client:dependencies

编译所有模块:

gradle build 
    原文作者:harryV
    原文地址: https://www.jianshu.com/p/affdc34ee739
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞