比尔云BierYun--阿里云最新优惠活动
阿里云优惠码丨阿里云代金券

gradle教程学习笔记(二)

gradle教程学习笔记(二)http://www.bieryun.com/2053.html

今天继续学习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.         }

 

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

强烈推荐

高性能SSD云服务器ECS抗攻击,高可用云数据库RDS