博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gradle-学习笔记(2)-多项目构建
阅读量:6257 次
发布时间:2019-06-22

本文共 4064 字,大约阅读时间需要 13 分钟。

记得在maven中支持多个子项目的构建方法,同样的在gradle 中也会支持多项目的构建方法

还记得在maven中如何配置多项目工程吗, 这里回忆一下

  1. 首先我们需要一个父元素pom文件比如这样
4.0.0
com.kyssion
maven-demo
1.0-SNAPSHOT
pom

而在gradle中,我们并不需要指定父元素的标签,我们只需要编写好对应的文件夹名称,并且将文件夹名称和对应的目录结构对应清,gradle 就能自动的识别这个子项目

比如我创建这样一个子项目名称是greeting-library

子项目中的配置未见build.gradle

plugins {    id 'groovy'}group 'com.kyssion'version '1.0-SNAPSHOT'repositories {    mavenCentral()}dependencies {    compile 'org.codehaus.groovy:groovy-all:2.5.6'    testCompile group: 'junit', name: 'junit', version: '4.12'}

父项目中的setting.gradle中添加这样一条配置

include 'greeting-library'

这样就能使用greeting-library目录下的gradle子项目了

一个简单的项目

这使用一个简单的项目介绍一下这个如何使用gradle 实现整合打包

项目结构和模块划分

├── build.gradle├── greeter│   ├── build│   │   ├── classes│   │   │   └── java│   │   │       └── main│   │   │           └── greeter│   │   │               └── Greeter.class│   │   ├── distributions│   │   │   ├── greeter-1.0-SNAPSHOT.tar│   │   │   └── greeter-1.0-SNAPSHOT.zip│   │   ├── generated│   │   │   └── sources│   │   │       └── annotationProcessor│   │   │           └── java│   │   │               └── main│   │   ├── libs│   │   │   └── greeter-1.0-SNAPSHOT.jar│   │   ├── scripts│   │   │   ├── greeter│   │   │   └── greeter.bat│   │   └── tmp│   │       ├── compileJava│   │       └── jar│   │           └── MANIFEST.MF│   ├── build.gradle│   └── src│       ├── main│       │   ├── java│       │   │   └── greeter│       │   │       └── Greeter.java│       │   └── resources│       └── test│           ├── java│           └── resources├── greeting-library│   ├── build│   │   ├── classes│   │   │   └── groovy│   │   │       ├── main│   │   │       │   └── greeter│   │   │       │       └── GreetingFormatter.class│   │   │       └── test│   │   │           └── greeter│   │   │               └── GreetingFormatterSpec.class│   │   ├── generated│   │   │   └── sources│   │   │       └── annotationProcessor│   │   │           └── groovy│   │   │               ├── main│   │   │               └── test│   │   ├── libs│   │   │   └── greeting-library-1.0-SNAPSHOT.jar│   │   ├── reports│   │   │   └── tests│   │   │       └── test│   │   │           ├── classes│   │   │           │   └── greeter.GreetingFormatterSpec.html│   │   │           ├── css│   │   │           │   ├── base-style.css│   │   │           │   └── style.css│   │   │           ├── index.html│   │   │           ├── js│   │   │           │   └── report.js│   │   │           └── packages│   │   │               └── greeter.html│   │   ├── test-results│   │   │   └── test│   │   │       ├── binary│   │   │       │   ├── output.bin│   │   │       │   ├── output.bin.idx│   │   │       │   └── results.bin│   │   │       └── TEST-greeter.GreetingFormatterSpec.xml│   │   └── tmp│   │       ├── compileGroovy│   │       │   └── groovy-java-stubs│   │       ├── compileTestGroovy│   │       │   └── groovy-java-stubs│   │       ├── jar│   │       │   └── MANIFEST.MF│   │       └── test│   │           └── jar_extract_15307722744227685163_tmp│   ├── build.gradle│   └── src│       ├── main│       │   ├── groovy│       │   │   └── greeter│       │   │       └── GreetingFormatter.groovy│       │   ├── java│       │   └── resources│       └── test│           ├── groovy│           │   └── greeter│           │       └── GreetingFormatterSpec.groovy│           ├── java│           └── resources└── settings.gradle

这个项目中划分为根项目gradle-demo,包项目greeting-library,core可运行项目greeter。

注意: 通过上面的例子我们可以得出,在gradle 中不同的子项目的命名规则是使用文件夹的

注意:在java 项目中,gradle 要求 必须指定项目的main函数具体方法见下方

这里针对gradle的多语言的编程的目录结构做一下补充,gradle中源代码同意放置在这样的位置中src->main/test->编程语言名称文件夹 下
plugins {    id 'java'    id 'application'}group 'com.kyssion'version '1.0-SNAPSHOT'sourceCompatibility = 1.8mainClassName = "greeter.Greeter"  //这一句指定了main函数repositories {    mavenCentral()}dependencies {    compile project(':greeting-library')    testCompile group: 'junit', name: 'junit', version: '4.12'}

总结

在构建gradle 多模块项目的时候,一定要注意多模块的之间的引用,模块中main函数的编写,父模块的include

转载地址:http://mxxsa.baihongyu.com/

你可能感兴趣的文章
vue实现菜单切换
查看>>
Java Web学习总结(28)——Java Web项目MVC开源框架SSH和SSM比较
查看>>
Maven学习总结(30)——Maven项目通用三级版本号说明
查看>>
如何提高iOS开发技能
查看>>
cocos2d-x HelloWorld 代码一撇
查看>>
2015.4.17专线割接
查看>>
map持久化类 Properties;对象序列化 ObjectOutputStream
查看>>
大端模式与小端模式、网络字节顺序与主机字节顺序
查看>>
ubuntu RPLIDAR A2的使用
查看>>
不用加减乘除实现加法运算
查看>>
一些有趣的javascript小测试
查看>>
数据库 innodb&MyISAM 简单区别
查看>>
Android逆向之旅---反编译利器Apktool和Jadx源码分析以及错误纠正
查看>>
Android中下拉框spinner的两种用法
查看>>
Andrew Ng 的 Machine Learning 课程学习 (week2) Linear Regression
查看>>
Windows下安装MongoDB
查看>>
MyBatis在insert插入操作时返回主键ID的配置
查看>>
使用eclipse的todo标签管理任务
查看>>
iOS 开发自定义一个提示框
查看>>
CentOS6.5加域
查看>>