gradle教程学习笔记(二)

简介: gradle教程学习笔记(二) 今天继续学习gradle的命令,首先可以用idea建立一个gradle的项目,然后会默认生成一段脚本,在这个脚本里面我引用了spring框架。首先来说一下具体的命令   [纯] 查看纯文本 - ?, -h,--help显示此帮助消息。

gradle教程学习笔记(二)

今天继续学习gradle的命令,首先可以用idea建立一个gradle的项目,然后会默认生成一段脚本,在这个脚本里面我引用了spring框架。首先来说一下具体的命令

 

[纯] 查看纯文本

  1. - ?, -h,--help显示此帮助消息。
  2. -a,--no-rebuild不重建项目依赖关系。
  3. -b,--build-file指定构建文件。
  4. -C,--cache指定应该如何缓存编译的构建脚本。可能的值是:'rebuild'和'on'。默认值是'on'[已弃用 - 使用'--rerun-tasks'或'--recompile-scripts'代替]
  5. -c,--settings-file指定设置文件。
  6. - 配置按需配置在此生成运行中只配置相关项目。这意味着大型多项目构建的构建速度更快。[孵育]
  7. - 继续执行任务失败后继续执行任务。
  8. -D,--system-prop设置JVM的系统属性(例如-Dmyprop = myvalue)。
  9. -d,--debug登录调试模式(包括正常的堆栈跟踪)。
  10. - 守护进程使用Gradle守护进程运行构建。如果没有运行,则启动守护进程。
  11. --foreground在前台启动Gradle守护进程。[孵育]
  12. -g,--gradle-user-home指定gradle用户主目录。
  13. --gui启动Gradle GUI。
  14. -I,--init-script指定一个初始化脚本。
  15. -i,--info将日志级别设置为info。
  16. -m,--dry-run在禁用所有任务操作的情况下运行构建。
  17. - 无颜色不要在控制台输出中使用颜色。
  18. --no-daemon不要使用Gradle守护程序来运行构建。
  19. --no-opt忽略任何任务优化。[已弃用 - 使用'--rerun-tasks'代替]
  20. --offline构建应该在不访问网络资源的情况下运行。
  21. -P,--project-prop设置构建脚本的项目属性(例如-Pmyprop = myvalue)。
  22. -p,--project-dir指定Gradle的起始目录。默认为当前目录。
  23. - 并行构建项目。Gradle将尝试确定要使用的执行程序线程的最佳数量。[孵育]
  24. --parallel-threads使用指定数量的执行程序线程并行构建项目。[孵育]
  25. - 配置文件构建执行时间并在<build_dir> / reports / profile目录中生成报告。
  26. --project-cache-dir指定项目特定的缓存目录。在根项目目录中默认为.gradle。
  27. -q,--quiet仅记录错误。
  28. --recompile-scripts强制构建脚本重新编译。
  29. --refresh刷新指定类型的资源状态。目前只支持“依赖关系”。[已弃用 - 使用'--refresh-dependencies'代替。]
  30. --refresh-dependencies刷新依赖关系的状态。
  31. --rerun-tasks忽略以前缓存的任务结果。
  32. -S,--full-stacktrace为所有异常打印完整(非常详细)的堆栈跟踪。
  33. -s,--stacktrace打印所有异常的堆栈跟踪。
  34. - 停止如果Gradle守护进程正在运行,则停止它。
  35. -u,--no-search-up不要在父文件夹中搜索settings.gradle文件。
  36. -v,--version打印版本信息。
  37. -x,--exclude-task指定要从执行中排除的任务。

以上便是通过--help调用出来的命令,一般情况下来说用到的命令也不会太多,首先是

命令一:gradle build

用这个命令运行下面的脚本就会把项目构建成一个jar包,例如我的测试项目编译后的jar包名字叫做Test-1.0.jar,首部采用了java的插件,在这个插件里面其实定义了很多任务,只不过是看不见默认调用了而已

[纯] 查看纯文本

  1. //采用的Java的插件
  2. 应用插件:'java'
  3. sourceCompatibility = 1.5
  4. //设置项目版本
  5. 版本='1.0'
  6. //设置仓库
  7. 存储库{
  8.     mavenCentral()
  9. }
  10. //设置测试编译时候的依赖包
  11. 依赖关系{
  12.     testCompile组:'junit',名称:'junit',版本:'4.11'
  13. }

你在编译的时候其实他会默认加上一些命令,他会自己加入以下这些命令,左右看看命令名称应该就能够知道了

[纯] 查看纯文本

  1. :processResources UP-TO-DATE
  2. :类
  3. :罐子上的日期
  4. :汇编UP-TO-DATE
  5. :compileTestJava UP-TO-DATE
  6. :processTestResources UP-TO-DATE
  7. :testClasses UP-TO-DATE
  8. :测试UP-TO-DATE
  9. :检查UP-TO-DATE
  10. :构建UP-TO-DATE

可以通过这个构建工具加入一些额外的依赖包比如可以用spring的,执行构建之后会自动去下载依赖包,但是想法好像有缓存有时候不能显示出来或者加载,等会就能看见效果,下面的罐子那个括号里面是为了打包的时候zaijava的清单加入一些说明

[纯] 查看纯文本

  1. 应用插件:'java'
  2. sourceCompatibility = 1.5
  3. 版本='1.0'
  4. 存储库{
  5.     mavenCentral()
  6. }
  7. 依赖关系{
  8.     testCompile组:'junit',名称:'junit',版本:'4.11'
  9.     编译'org.springframework:spring-context:4.1.1.RELEASE'
  10. }
  11. 罐{
  12.     表现{
  13.         属性“title”:“gradle start”,
  14.                     “版本”:版本
  15.     }
  16. }

在运行之后你就可以看见你的JAR包里面的清单文件内容变化了

Manifest-Version:1.0
标题:gradle start
版本:1.0

命令二:gradle属性

那其实打造为什么这神奇,是因为他自己定义需要任务和属性,可以通过上面的命令进行查看,下面是列出这些默认的属性

[纯] 查看纯文本

  1. 所有项目:[root project'Test']
  2. ant:org.gradle.api.internal.project.DefaultAntBuilder@51288417
  3. antBuilderFactory:org.gradle.api.internal.project.DefaultAntBuilderFactory@60cf62ad
  4. apiDocTitle:测试1.0 API
  5. archivesBaseName:测试
  6. 工件:org.gradle.api.internal.artifacts.dsl.DefaultArtifactHandler@1e0895f5
  7. asDynamicObject:org.gradle.api.internal.ExtensibleDynamicObject@1ac4ccad
  8. 汇编:任务':汇编'
  9. 二进制文件:[class'main',classes'test']]
  10. 构建:任务':构建'
  11. buildDependents:task':buildDependents'
  12. buildDir:/ Users / mac_wk / IdeaProjects / Test / build
  13. buildFile:/Users/mac_wk/IdeaProjects/Test/build.gradle
  14. buildNeeded:任务':buildNeeded'
  15. buildScriptSource:org.gradle.groovy.scripts.UriScriptSource@14982a82
  16. buildTasks:[build]
  17. buildscript:org.gradle.api.internal.initialization.DefaultScriptHandler@4ee5b2d9
  18. 检查:任务':检查'
  19. childProjects:{}
  20. class:class org.gradle.api.internal.project.DefaultProject_Decorated
  21. 类:任务':类'
  22. 清洁:任务':干净'
  23. compileJava:task':compileJava'
  24. compileTestJava:task':compileTestJava'
  25. 组件:[org.gradle.api.internal.java.JavaLibrary@72f8ae0c]
  26. configurationActions:org.gradle.configuration.project.DefaultProjectConfigurationActionContainer@323f3c96
  27. 配置:[configuration':archives',configuration':compile',配置':default',配置':runtime',配置':testCompile',配置':testRuntime']
  28. 约定:org.gradle.api.internal.plugins.DefaultConvention@6726cc69
  29. defaultArtifacts:org.gradle.api.internal.plugins.DefaultArtifactPublicationSet_Decorated@4b6d92e
  30. defaultTasks:[]
  31. 依赖关系:org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler_Decorated@33899f7a
  32. dependencyCacheDir:/ Users / mac_wk / IdeaProjects / Test / build / dependency-cache
  33. dependencyCacheDirName:依赖关系缓存
  34. dependsOnProjects:[]
  35. 深度:0
  36. 描述:null
  37. distsDir:/ Users / mac_wk / IdeaProjects / Test / build / distributions
  38. distsDirName:发行版
  39. docsDir:/ Users / mac_wk / IdeaProjects / Test / build / docs
  40. docsDirName:docs
  41. ext:org.gradle.api.internal.plugins.DefaultExtraPropertiesExtension@7899de11
  42. 扩展名:org.gradle.api.internal.plugins.DefaultConvention@6726cc69
  43. fileResolver:org.gradle.api.internal.file.BaseDirFileResolver@290d10ef
  44. gradle:build'Test'
  45. 组:
  46. implicitTasks:[task':dependencies',task':dependencyInsight',task':help',task':projects',task':properties',task':tasks]]
  47. inheritedScope:org.gradle.api.internal.ExtensibleDynamicObject$InheritedDynamicObject@1bc0d349
  48. jar:任务':jar'
  49. javadoc:task':javadoc'
  50. libsDir:/ Users / mac_wk / IdeaProjects / Test / build / libs
  51. libsDirName:libs
  52. 记录器:org.gradle.api.logging.Logging$LoggerImpl@644ded04
  53. 日志记录:org.gradle.logging.internal.DefaultLoggingManager@5292ceca
  54. 清单:org.gradle.api.java.archives.internal.DefaultManifest@13d9261f
  55. metaClass:org.codehaus.groovy.runtime.HandleMetaClass@e9ef5b6 [groovy.lang.MetaClassImpl@e9ef5b6 [class org.gradle.api.internal.project.DefaultProject_Decorated]]
  56. metaInf:[]
  57. modelRegistry:org.gradle.model.internal.DefaultModelRegistry@5300cac
  58. 模块:org.gradle.api.internal.artifacts.ProjectBackedModule@24b52d3e
  59. 名称:测试
  60. parent:null
  61. parentIdentifier:null
  62. 路径::
  63. 插件:[org.gradle.api.plugins.HelpTasksPlugin@6d467c87,org.gradle.api.plugins.BasePlugin@1a35993f,org.gradle.api.plugins.ReportingBasePlugin@518cf84a,org.gradle.language.base.plugins.LanguageBasePlugin @ 1be59f28,org.gradle.language.jvm.plugins.JvmLanguagePlugin@2ab2710,org.gradle.api.plugins.JavaLanguagePlugin@149f5761,org.gradle.api.plugins.JavaBasePlugin@c6e0f32,org.gradle.api.plugins.JavaPlugin @ 4554de02]
  64. processResources:task':processResources'
  65. processTestResources:task':processTestResources'
  66. 项目:根项目'测试'
  67. projectDir:/ Users / mac_wk / IdeaProjects / Test
  68. projectEvaluationBroadcaster:ProjectEvaluationListener广播
  69. projectEvaluator:org.gradle.configuration.project.LifecycleProjectEvaluator@4110765e
  70. projectRegistry:org.gradle.api.internal.project.DefaultProjectRegistry@1ba359bd
  71. 属性:{...}
  72. rebuildTasks:[clean,build]
  73. 报告:org.gradle.api.reporting.ReportingExtension_Decorated@62e93c3a
  74. reportsDir:/ Users / mac_wk / IdeaProjects / Test / build / reports
  75. reportsDirName:报告
  76. 存储库:[org.gradle.api.internal.artifacts.repositories.DefaultMavenArtifactRepository_Decorated@673919a7]
  77. 资源:org.gradle.api.internal.resources.DefaultResourceHandler@25d93198
  78. rootDir:/ Users / mac_wk / IdeaProjects / Test
  79. rootProject:根项目'Test'
  80. runtimeClasspath:文件集合
  81. scriptPluginFactory:org.gradle.configuration.DefaultScriptPluginFactory@2436ea2f
  82. serviceRegistryFactory:org.gradle.internal.service.scopes.ProjectScopeServices$5@f951a7f
  83. 服务:ProjectScopeServices
  84. sourceCompatibility:1.5
  85. sourceSets:[source set'main',source set'test']]
  86. 来源:[source set'main',source set'test']
  87. standardOutputCapture:org.gradle.logging.internal.DefaultLoggingManager@5292ceca
  88. 状态:项目状态'EXECUTED'
  89. 状态:整合
  90. 子项目:[]
  91. 目标兼容性:1.5
  92. 任务:[任务':汇编',任务':构建',任务':构建依赖者',任务':构建需要',任务':检查',任务':班',任务':干净',任务':compileJava' ,task':compileTestJava',任务':jar',任务':javadoc',任务':processResources',任务':processTestResources',任务':test',任务':testClasses']
  93. 测试:任务':测试'
  94. testClasses:task':testClasses'
  95. testReportDir:/ Users / mac_wk / IdeaProjects / Test / build / reports / tests
  96. testReportDirName:测试
  97. testResultsDir:/ Users / mac_wk / IdeaProjects / Test / build / test-results
  98. testResultsDirName:测试结果
  99. 版本:1.0

大概的看一下就能够知道大概做了什么任务了,为什么会自动创建建立文件夹,因为他默认执行了创建文件的命令,而上面的属性定义了这些任务描述或者属性,我们可以试试,比如咱们执行一下面的这个脚本你就会发觉默认的build并没有自己生成而是变成了自定义的地方采用命令gradle build

[html] 查看纯文本

  1. 应用插件:'java'
  2. sourceCompatibility  =  1 0.5
  3. 版本 =  '1.0'
  4. buildDir  =  “/ Users / mac_wk / IdeaProjects / Test / build_one”
  5. 存储库{
  6.     mavenCentral()
  7. }
  8. 依赖关系{
  9.     testCompile组:'junit',名称:'junit',版本:'4.11'
  10.     编译'org.springframework:spring-context:4.1.1.RELEASE'
  11. }
  12. 罐{
  13.     表现{
  14.         属性“title”:“gradle start”,
  15.                     “版本”:版本
  16.     }
  17. }

 

命令三:发布的jar的命令

可以通过这样的配置,把jar包发布到本地或者是远程,或者多个目录下对下面的脚本执行gradle uploadArchives

[纯] 查看纯文本

  1. uploadArchives
  2.         {
  3.             库{
  4.                 flatDir {
  5.                     dirs'repos1'
  6.                 }
  7.             }
  8.         }

 原文地址http://www.bieryun.com/2053.html

相关文章
|
6月前
|
Java Linux Shell
Gradle下载和配置教程:Windows、Mac和Linux系统安装指南
Gradle下载和配置教程:Windows、Mac和Linux系统安装指南
441 0
IDEA 降级gradle插件教程
IDEA 降级gradle插件教程
988 0
IDEA 降级gradle插件教程
|
XML 缓存 搜索推荐
Gradle构建工具极简教程
Gradle构建工具极简教程
295 0
Gradle构建工具极简教程
|
开发工具 Android开发
Android SMSSDK非Gradle集成教程
一、说明(1)3.x与之前的旧版本互不兼容,请严格按照本文档进行3.x的首次集成或老版本的升级操作。(2)3.x之前版本的集成,请参考:http://wiki.mob.com/android-%e7%9f%ad%e4%bf%a1sdk%e9%9b%86%e6%88%90%e6%96%87%e6%a1%a3/–>集成之前先要申请Mob的appkey与appsecret;申请完添加短信SDK的产品;得到key我们开始集成;二、获取SDK请至Mob官网下载最新SDK,解压后会看到以下目录结构:SMSSDK下存放的是短信SDK的全部内容。
1471 0
|
jenkins 应用服务中间件 持续交付
Jenkins +Gradle实现Android自动化构建(学习笔记三十二)
https://blog.csdn.net/mabeijianxi/article/details/52680283 http://www.liuling123.com/2016/10/jenkins-gradle-auto-build.html Jenkins简介 Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
2587 0
|
Java Apache Scala
Gradle学习笔记(1)创建简单的Java项目
  Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。
1024 0
|
JavaScript Java Maven
《Kotin 极简教程》第12章 使用 Kotlin 集成Gradle 开发
第12章 使用 Kotlin 集成Gradle 开发 《Kotlin极简教程》正式上架: 点击这里 > 去京东商城购买阅读 点击这里 > 去天猫商城购买阅读 非常感谢您亲爱的读者,大家请多支持!!!有任何问题,欢迎随时与我交流~ 由于 Kotlin 具有丰富的功能,如一等函数和扩展方法等,因此它可以保留和改进 Gradle 构建脚本的最佳部分——包括简明的声明式语法以及轻松制作 DSL 的能力。
1988 0
《Groovy极简教程》第7章 Groovy与Gradle
《Groovy极简教程》第7章 Groovy与Gradle
948 0