03-gradle中的命令

1.gradle  -v   查看版本

2.gradle  hello,world

build.gradle

task helloWorld << {
    println "Hello World!"
}
运行:gradle   helloWorld  输出结果

3.复制文件

task copyFile(type: Copy) {
    from 'aaa'
    into 'bbb'
}
以上copyFile将aaa文件夹中的所有内容拷贝到bbb文件夹中。这里的两个文件夹都是相对于当前Project而言的,即build.gradle文件所在的目录。

4.依赖关系

Task之间可以存在依赖关系,比如taskA依赖于taskB,那么在执行taskA时,Gradle会先执行taskB,然后再执行taskB。声明Task依赖关系的一种方式是在定义一个Task的时候:

task taskA(dependsOn:taskB)<< {
println "executing taskA"
}

task helloWorld << {
    println "Hello World!"
}

task copyFile(dependsOn:helloWorld) {
     println "copyFile!"
}
输出
copyFile
Hello World!
Gradle在默认情况下为我们提供了几个常用的Task,比如查看Project的Properties,显示当前Project中定义的所有Task等。可以通过一下命令查看Project所有的Task:


gradle tasks


输出如下:


:tasks


------------------------------------------------------------
All tasks runnable from root project
------------------------------------------------------------


Build Setup tasks
-----------------
setupBuild - Initializes a new Gradle build. [incubating]
wrapper - Generates Gradle wrapper files. [incubating]


Help tasks
----------
dependencies - Displays all dependencies declared in root project 'gradle-blog'.
dependencyInsight - Displays the insight into a specific dependency in root project 'gradle-blog'.
help - Displays a help message
projects - Displays the sub-projects of root project 'gradle-blog'.
properties - Displays the properties of root project 'gradle-blog'.
tasks - Displays the tasks runnable from root project 'gradle-blog'.


Other tasks
-----------
copyFile
helloWorld


To see all tasks and more detail, run with --all.


BUILD SUCCESSFUL


Total time: 2.845 secs


可以看到,除了我们自己定义的copyFile和helloWorld之外,Gradle还默认为我们提供了dependencies,projects和properties等Task。dependencies用于显示Project的依赖信息,projects用于显示所有Project,包括根Project和子Project,而properties则用于显示一个Project所包含的所有Property。


在默认情况下,Gradle已经为一个Project添加了很多Property,我们可以调用以下命令进行查看:


gradle properties


输出如下:


:properties


------------------------------------------------------------
Root project
------------------------------------------------------------


allprojects: [root project 'gradle-blog']
ant: org.gradle.api.internal.project.DefaultAntBuilder@1342097
antBuilderFactory: org.gradle.api.internal.project.DefaultAntBuilderFactory@1eeb95e
artifacts: org.gradle.api.internal.artifacts.dsl.DefaultArtifactHandler@d2ad3c
asDynamicObject: org.gradle.api.internal.ExtensibleDynamicObject@198339a
buildDir: /home/davenkin/Desktop/gradle-blog/build
buildFile: /home/davenkin/Desktop/gradle-blog/build.gradle
buildScriptSource: org.gradle.groovy.scripts.UriScriptSource@13e9963
buildscript: org.gradle.api.internal.initialization.DefaultScriptHandler@89eb77
childProjects: {}
class: class org.gradle.api.internal.project.DefaultProject_Decorated
components: []
configurationActions: org.gradle.configuration.project.DefaultProjectConfigurationActionContainer@b07848
configurations: []
convention: org.gradle.api.internal.plugins.DefaultConvention@11492ed
copyFile: task ':copyFile'
defaultTasks: []
dependencies: org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler@1a5469e
dependsOnProjects: []
depth: 0
description: null
ext: org.gradle.api.internal.plugins.DefaultExtraPropertiesExtension@1b5d53a
extensions: org.gradle.api.internal.plugins.DefaultConvention@11492ed
fileResolver: org.gradle.api.internal.file.BaseDirFileResolver@19d44df
gradle: build 'gradle-blog'
group: 
helloWorld: task ':helloWorld'
implicitTasks: [task ':dependencies', task ':dependencyInsight', task ':help', task ':projects', task ':properties', task ':tasks']
inheritedScope: org.gradle.api.internal.ExtensibleDynamicObject$InheritedDynamicObject@ab8796
logger: org.gradle.api.logging.Logging$LoggerImpl@1b33087
logging: org.gradle.logging.internal.DefaultLoggingManager@13f67a9
metaClass: org.codehaus.groovy.runtime.HandleMetaClass@11cac41[groovy.lang.MetaClassImpl@11cac41[class org.gradle.api.internal.project.DefaultProject_Decorated]]
module: org.gradle.api.internal.artifacts.ProjectBackedModule@8c0162
name: gradle-blog
parent: null
parentIdentifier: null
path: :
plugins: [org.gradle.api.plugins.HelpTasksPlugin@7359f7]
project: root project 'gradle-blog'
projectDir: /home/davenkin/Desktop/gradle-blog
projectEvaluationBroadcaster: ProjectEvaluationListener broadcast
projectEvaluator: org.gradle.configuration.project.LifecycleProjectEvaluator@1654982
projectRegistry: org.gradle.api.internal.project.DefaultProjectRegistry@1715c20
properties: {...}
repositories: []
resources: org.gradle.api.internal.resources.DefaultResourceHandler@1cd0037
rootDir: /home/davenkin/Desktop/gradle-blog
rootProject: root project 'gradle-blog'
scriptPluginFactory: org.gradle.configuration.DefaultScriptPluginFactory@10951aa
services: ProjectInternalServiceRegistry
standardOutputCapture: org.gradle.logging.internal.DefaultLoggingManager@13f67a9
state: project state 'EXECUTED'
status: release
subprojects: []
tasks: [task ':copyFile', task ':helloWorld']
version: unspecified


BUILD SUCCESSFUL


Total time: 2.667 secs


在以上Property中,allprojects表示所有的Project,这里之包含一个根Project,在多项目构建中,它将包含多个Project;buildDir表示构建结果的输出目录;我们自己定义的helloWorld和copyFile也成为了Project中的Property。另外,Project还包括用于执行Ant命令的DefaultAntBuilder(Property名为ant)和Project的描述属性description。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会编程的阿强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值