
通过前面12课的内容,我们熟悉Gradle的基本知识,并对Gradle的原理有深刻的理解. 但是,如果理论知识不在该项目的实际战斗中,我相信每个人都会很快忘记清理它,因此从本章开始,我将使用一个实践项目,并结合前几章的基本理论来帮助您通过实战与理论相结合,巩固并加强对Gradle的更深了解.
首先,我们创建一个项目,其根项目是多项目. 该项目包含三个子项目,即api,core和login. 其结构如下:
multiproject/
build.gradle
settings.gradle
api/
core/
login/
有关Gradle中多个项目的详细介绍,请查看“第10课Gradle编译和打包多个项目”的内容. 接下来,我将使用IntelliJ IDEA工具逐步指导您完成多个项目的创建.
首先打开IDEA工具,选择新项目,如下所示:
然后选择Gradle项目,如下所示:
在此处输入我们的GroupId和ArtifactId,其中ArtifactId将默认为我们项目的名称,如下所示:
在此步骤中保留默认值,然后继续下一步:
您可以在此处更改项目名称并指定项目的位置,如下所示:

单击“完成”以完成创建,当前项目结果如下:
我们将继续创建子项目. IDEA中的相应模块是Module. 有关具体操作,请参考以下四个数字:
创建的api子项目的结构如下:
其他子项目的创建与api相同,除了我们使用的登录项目是由spring boot实现的简单登录项目. 如何使用弹簧靴,请自己学习. 它不在此内容的范围内. 最终的目录结构如下:
同时,在子项目apigradle实战,核心和登录项目下创建了Java插件约定的目录结构(有关详细信息,您可以在“ Lesson of Common Plug-ins Introduction in Lesson”中查看其内容. 12 Gradle-Next”). 具体结构如下:

src/
main/
java/ # java源文件
resources/ # 项目资源文件
test/
java/ # 测试源文件
resources/ # 测试资源文件
$ gradle projects
:projects
------------------------------------------------------------
Root project
------------------------------------------------------------
Root project 'multiproject'
+--- Project ':api'
+--- Project ':core'
\--- Project ':login'
To see a list of the tasks of a project, run gradle <project-path>:tasks
For example, try running gradle :api:tasks
BUILD SUCCESSFUL
$ gradle tasks
:tasks
------------------------------------------------------------
All tasks runnable from root project
------------------------------------------------------------
Application tasks
-----------------
bootRun - Run the project with support for auto-detecting main class and reloading static resources
Build tasks
-----------
assemble - Assembles the outputs of this project.
bootRepackage - Repackage existing JAR and WAR archives so that they can be executed from the command line using 'java -jar'
build - Assembles and tests this project.
buildDependents - Assembles and tests this project and all projects that depend on it.
buildNeeded - Assembles and tests this project and all projects it depends on.
classes - Assembles main classes.
clean - Deletes the build directory.
jar - Assembles a jar archive containing the main classes.
testClasses - Assembles test classes.
...省略....
$ gradle properties
:properties
------------------------------------------------------------
Root project
------------------------------------------------------------
allprojects: [root project 'multiproject', project ':api', project ':core', project ':login']
ant: org.gradle.api.internal.project.DefaultAntBuilder@3796aca5
antBuilderFactory: org.gradle.api.internal.project.DefaultAntBuilderFactory@42ca9b32
archivesBaseName: multiproject
artifacts: org.gradle.api.internal.artifacts.dsl.DefaultArtifactHandler_Decorated@33097a0a
asDynamicObject: DynamicObject for root project 'multiproject'
assemble: task ':assemble'
...省略....
$ gradle help
:help
Welcome to Gradle 3.2.
To run a build, run gradle <task> ...
To see a list of available tasks, run gradle tasks
To see a list of command-line options, run gradle --help
To see more detail about a task, run gradle help --task <task>
BUILD SUCCESSFUL
$ gradle dependencies
:dependencies
------------------------------------------------------------
Root project
------------------------------------------------------------
...省略....
testCompile - Dependencies for source set 'test'.
\--- junit:junit:4.12
\--- org.hamcrest:hamcrest-core:1.3
testCompileClasspath - Compile classpath for source set 'test'.
\--- junit:junit:4.12
\--- org.hamcrest:hamcrest-core:1.3
testCompileOnly - Compile dependencies for source set 'test'.
\--- junit:junit:4.12
\--- org.hamcrest:hamcrest-core:1.3
...省略....
我们通常向项目添加一些第三方依赖库. 有关特定的添加方法,请查看“第03课Gradle基本脚本实现”内容. 在这里,我们主要介绍特定的依赖项配置,如下表所示:
相关性范围说明
编译
依赖关系是已编译项目的源代码
运行时
依赖项是项目运行时的类,默认情况下也用于编译
testCompile

此依赖项是针对编译项目测试的源代码,默认情况下包括编译和运行时
testRuntime
此依赖性是针对执行测试时的用例的. 默认情况下包括compile,运行时和testCompile
示例代码如下:
dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
compile("org.springframework.boot:spring-boot-starter-data-jpa")
compile("mysql:mysql-connector-java:5.1.38")
compile("commons-codec:commons-codec:1.10")
testCompile('org.springframework.boot:spring-boot-starter-test')
}
当我们介绍使用Java插件时,我们介绍了许多插件为项目添加了附加属性,并且在Gradle中设置和读取项目属性是非常重要的功能. 当我们将Gradle和Jenkins结合使用时,将专门使用它. 接下来,我将简要介绍几种常见的自定义属性方法.
首先,Gradle默认情况下为项目定义了许多属性,我们可以使用前面介绍的gradle properties命令来查看,其中更常用的是以下属性:
两种自定义属性的常用方法:
在build.gradle文件中定义属性,通过命令行参数定义属性,通过JVM系统参数定义属性
示例代码如下:
// 第一种 在build.gradle文件中定义属性
ext.gitbranch = "develop"
// 或者使用闭包方法
ext {
gitbranch = "develop"
}
// 第二种 通过命令行参数定义属性
task customProperties << {
println gitbranch
}
gradle -Pgitbranch="develop" customProperties
// 第三种 通过JVM系统参数定义属性
// 我们可以通过-D参数定义JVM的系统参数,
// 然后在代码中可以可以通过System.getProperty()进行获取
task customProperties << {
println System.properties['gitbranch']
}
gradle -Dgitbranch="develop" customProperties
通过引入项目创建,常用命令,依赖项配置和自定义属性,我们已经完成了项目构建的初步工作. 接下来,让我们开始完成部分项目建设.
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-205630-1.html
你还继续圈滴
美国看不下去了
实在不行