gradle教程学习笔记(二)

时间:2024-03-30 20:04:13

gradle教程学习笔记(二)

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:[email protected]
  3. antBuilderFactory:[email protected]d
  4. apiDocTitle:测试1.0 API
  5. archivesBaseName:测试
  6. 工件:[email protected]895f5
  7. asDynamicObject:[email protected]
  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:[email protected]
  16. buildTasks:[build]
  17. buildscript:[email protected]b2d9
  18. 检查:任务':检查'
  19. childProjects:{}
  20. class:class org.gradle.api.internal.project.DefaultProject_Decorated
  21. 类:任务':类'
  22. 清洁:任务':干净'
  23. compileJava:task':compileJava'
  24. compileTestJava:task':compileTestJava'
  25. 组件:[[email protected]]
  26. configurationActions:org.gradle.c[email protected]323f3c96
  27. 配置:[configuration':archives',configuration':compile',配置':default',配置':runtime',配置':testCompile',配置':testRuntime']
  28. 约定:[email protected]
  29. defaultArtifacts:org.grad[email protected]4b6d92e
  30. defaultTasks:[]
  31. 依赖关系:org.gradle.api.interna[email protected]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:[email protected]7899de11
  42. 扩展名:[email protected]
  43. fileResolver:[email protected]
  44. gradle:build'Test'
  45. 组:
  46. implicitTasks:[task':dependencies',task':dependencyInsight',task':help',task':projects',task':properties',task':tasks]]
  47. inheritedScope:org.gra[email protected]1bc0d349
  48. jar:任务':jar'
  49. javadoc:task':javadoc'
  50. libsDir:/ Users / mac_wk / IdeaProjects / Test / build / libs
  51. libsDirName:libs
  52. 记录器:org.gradle.api.[email protected]
  53. 日志记录:[email protected]
  54. 清单:[email protected]
  55. metaClass:[email protected] [[email protected] [class org.gradle.api.internal.project.DefaultProject_Decorated]]
  56. metaInf:[]
  57. modelRegistry:[email protected]
  58. 模块:[email protected]
  59. 名称:测试
  60. parent:null
  61. parentIdentifier:null
  62. 路径::
  63. 插件:[[email protected][email protected][email protected],org.gradle.language.base.plugins.LanguageBasePlugin @ 1be59f28,[email protected][email protected][email protected],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:[email protected]65e
  70. projectRegistry:[email protected]
  71. 属性:{...}
  72. rebuildTasks:[clean,build]
  73. 报告:[email protected]
  74. reportsDir:/ Users / mac_wk / IdeaProjects / Test / build / reports
  75. reportsDirName:报告
  76. 存储库:[org.gradle.api.internal.[email protected]673919a7]
  77. 资源:[email protected]8
  78. rootDir:/ Users / mac_wk / IdeaProjects / Test
  79. rootProject:根项目'Test'
  80. runtimeClasspath:文件集合
  81. scriptPluginFactory:[email protected]
  82. serviceRegistryFactory:[email protected]f
  83. 服务:ProjectScopeServices
  84. sourceCompatibility:1.5
  85. sourceSets:[source set'main',source set'test']]
  86. 来源:[source set'main',source set'test']
  87. standardOutputCapture:[email protected]
  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