第13课: Gradle项目实战编译和打包

电脑杂谈  发布时间:2020-05-10 22:21:47  来源:网络整理

gradle实战_gradle_gradle 实战pdf

通过前面12课的内容,我们熟悉Gradle的基本知识,并对Gradle的原理有深刻的理解. 但是,如果理论知识不在该项目的实际战斗中,我相信每个人都会很快忘记清理它,因此从本章开始,我将使用一个实践项目,并结合前几章的基本理论来帮助您通过实战与理论相结合,巩固并加强对Gradle的更深了解.

首先,我们创建一个项目,其根项目是多项目. 该项目包含三个子项目,即api,core和login. 其结构如下:

multiproject/
  build.gradle
  settings.gradle
  api/
  core/
  login/

有关Gradle中多个项目的详细介绍,请查看“第10课Gradle编译和打包多个项目”的内容. 接下来,我将使用IntelliJ IDEA工具逐步指导您完成多个项目的创建.

首先打开IDEA工具,选择新项目,如下所示:

enter image description here

然后选择Gradle项目,如下所示:

enter image description here

在此处输入我们的GroupId和ArtifactId,其中ArtifactId将默认为我们项目的名称,如下所示:

enter image description here

在此步骤中保留默认值,然后继续下一步:

enter image description here

您可以在此处更改项目名称并指定项目的位置,如下所示:

gradle_gradle实战_gradle 实战pdf

enter image description here

单击“完成”以完成创建,当前项目结果如下:

enter image description here

我们将继续创建子项目. IDEA中的相应模块是Module. 有关具体操作,请参考以下四个数字:

enter image description here

enter image description here

enter image description here

enter image description here

创建的api子项目的结构如下:

enter image description here

其他子项目的创建与api相同,除了我们使用的登录项目是由spring boot实现的简单登录项目. 如何使用弹簧靴,请自己学习. 它不在此内容的范围内. 最终的目录结构如下:

enter image description here

同时,在子项目apigradle实战,核心和登录项目下创建了Java插件约定的目录结构(有关详细信息,您可以在“ Lesson of Common Plug-ins Introduction in Lesson”中查看其内容. 12 Gradle-Next”). 具体结构如下:

gradle 实战pdf_gradle实战_gradle

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

gradle_gradle实战_gradle 实战pdf

此依赖项是针对编译项目测试的源代码,默认情况下包括编译和运行时

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

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...