gradle教程学习笔记(二)
今天继续学习gradle的命令,首先可以用idea建立一个gradle的项目,然后会默认生成一段脚本,在这个脚本里面我引用了spring框架。首先来说一下具体的命令
- - ?, -h,--help显示此帮助消息。
- -a,--no-rebuild不重建项目依赖关系。
- -b,--build-file指定构建文件。
- -C,--cache指定应该如何缓存编译的构建脚本。可能的值是:'rebuild'和'on'。默认值是'on'[已弃用 - 使用'--rerun-tasks'或'--recompile-scripts'代替]
- -c,--settings-file指定设置文件。
- - 配置按需配置在此生成运行中只配置相关项目。这意味着大型多项目构建的构建速度更快。[孵育]
- - 继续执行任务失败后继续执行任务。
- -D,--system-prop设置JVM的系统属性(例如-Dmyprop = myvalue)。
- -d,--debug登录调试模式(包括正常的堆栈跟踪)。
- - 守护进程使用Gradle守护进程运行构建。如果没有运行,则启动守护进程。
- --foreground在前台启动Gradle守护进程。[孵育]
- -g,--gradle-user-home指定gradle用户主目录。
- --gui启动Gradle GUI。
- -I,--init-script指定一个初始化脚本。
- -i,--info将日志级别设置为info。
- -m,--dry-run在禁用所有任务操作的情况下运行构建。
- - 无颜色不要在控制台输出中使用颜色。
- --no-daemon不要使用Gradle守护程序来运行构建。
- --no-opt忽略任何任务优化。[已弃用 - 使用'--rerun-tasks'代替]
- --offline构建应该在不访问网络资源的情况下运行。
- -P,--project-prop设置构建脚本的项目属性(例如-Pmyprop = myvalue)。
- -p,--project-dir指定Gradle的起始目录。默认为当前目录。
- - 并行构建项目。Gradle将尝试确定要使用的执行程序线程的最佳数量。[孵育]
- --parallel-threads使用指定数量的执行程序线程并行构建项目。[孵育]
- - 配置文件构建执行时间并在<build_dir> / reports / profile目录中生成报告。
- --project-cache-dir指定项目特定的缓存目录。在根项目目录中默认为.gradle。
- -q,--quiet仅记录错误。
- --recompile-scripts强制构建脚本重新编译。
- --refresh刷新指定类型的资源状态。目前只支持“依赖关系”。[已弃用 - 使用'--refresh-dependencies'代替。]
- --refresh-dependencies刷新依赖关系的状态。
- --rerun-tasks忽略以前缓存的任务结果。
- -S,--full-stacktrace为所有异常打印完整(非常详细)的堆栈跟踪。
- -s,--stacktrace打印所有异常的堆栈跟踪。
- - 停止如果Gradle守护进程正在运行,则停止它。
- -u,--no-search-up不要在父文件夹中搜索settings.gradle文件。
- -v,--version打印版本信息。
- -x,--exclude-task指定要从执行中排除的任务。
以上便是通过--help调用出来的命令,一般情况下来说用到的命令也不会太多,首先是
命令一:gradle build
用这个命令运行下面的脚本就会把项目构建成一个jar包,例如我的测试项目编译后的jar包名字叫做Test-1.0.jar,首部采用了java的插件,在这个插件里面其实定义了很多任务,只不过是看不见默认调用了而已
- //采用的Java的插件
- 应用插件:'java'
- sourceCompatibility = 1.5
- //设置项目版本
- 版本='1.0'
- //设置仓库
- 存储库{
- mavenCentral()
- }
- //设置测试编译时候的依赖包
- 依赖关系{
- testCompile组:'junit',名称:'junit',版本:'4.11'
- }
你在编译的时候其实他会默认加上一些命令,他会自己加入以下这些命令,左右看看命令名称应该就能够知道了
- :processResources UP-TO-DATE
- :类
- :罐子上的日期
- :汇编UP-TO-DATE
- :compileTestJava UP-TO-DATE
- :processTestResources UP-TO-DATE
- :testClasses UP-TO-DATE
- :测试UP-TO-DATE
- :检查UP-TO-DATE
- :构建UP-TO-DATE
可以通过这个构建工具加入一些额外的依赖包比如可以用spring的,执行构建之后会自动去下载依赖包,但是想法好像有缓存有时候不能显示出来或者加载,等会就能看见效果,下面的罐子那个括号里面是为了打包的时候zaijava的清单加入一些说明
- 应用插件:'java'
- sourceCompatibility = 1.5
- 版本='1.0'
- 存储库{
- mavenCentral()
- }
- 依赖关系{
- testCompile组:'junit',名称:'junit',版本:'4.11'
- 编译'org.springframework:spring-context:4.1.1.RELEASE'
- }
- 罐{
- 表现{
- 属性“title”:“gradle start”,
- “版本”:版本
- }
- }
在运行之后你就可以看见你的JAR包里面的清单文件内容变化了
Manifest-Version:1.0
标题:gradle start
版本:1.0
命令二:gradle属性
那其实打造为什么这神奇,是因为他自己定义需要任务和属性,可以通过上面的命令进行查看,下面是列出这些默认的属性
- 所有项目:[root project'Test']
- ant:[email protected]
- antBuilderFactory:[email protected]d
- apiDocTitle:测试1.0 API
- archivesBaseName:测试
- 工件:[email protected]895f5
- asDynamicObject:[email protected]
- 汇编:任务':汇编'
- 二进制文件:[class'main',classes'test']]
- 构建:任务':构建'
- buildDependents:task':buildDependents'
- buildDir:/ Users / mac_wk / IdeaProjects / Test / build
- buildFile:/Users/mac_wk/IdeaProjects/Test/build.gradle
- buildNeeded:任务':buildNeeded'
- buildScriptSource:[email protected]
- buildTasks:[build]
- buildscript:[email protected]b2d9
- 检查:任务':检查'
- childProjects:{}
- class:class org.gradle.api.internal.project.DefaultProject_Decorated
- 类:任务':类'
- 清洁:任务':干净'
- compileJava:task':compileJava'
- compileTestJava:task':compileTestJava'
- 组件:[[email protected]]
- configurationActions:org.gradle.c[email protected]323f3c96
- 配置:[configuration':archives',configuration':compile',配置':default',配置':runtime',配置':testCompile',配置':testRuntime']
- 约定:[email protected]
- defaultArtifacts:org.grad[email protected]4b6d92e
- defaultTasks:[]
- 依赖关系:org.gradle.api.interna[email protected]33899f7a
- dependencyCacheDir:/ Users / mac_wk / IdeaProjects / Test / build / dependency-cache
- dependencyCacheDirName:依赖关系缓存
- dependsOnProjects:[]
- 深度:0
- 描述:null
- distsDir:/ Users / mac_wk / IdeaProjects / Test / build / distributions
- distsDirName:发行版
- docsDir:/ Users / mac_wk / IdeaProjects / Test / build / docs
- docsDirName:docs
- ext:[email protected]7899de11
- 扩展名:[email protected]
- fileResolver:[email protected]
- gradle:build'Test'
- 组:
- implicitTasks:[task':dependencies',task':dependencyInsight',task':help',task':projects',task':properties',task':tasks]]
- inheritedScope:org.gra[email protected]1bc0d349
- jar:任务':jar'
- javadoc:task':javadoc'
- libsDir:/ Users / mac_wk / IdeaProjects / Test / build / libs
- libsDirName:libs
- 记录器:org.gradle.api.[email protected]
- 日志记录:[email protected]
- 清单:[email protected]
- metaClass:[email protected] [[email protected] [class org.gradle.api.internal.project.DefaultProject_Decorated]]
- metaInf:[]
- modelRegistry:[email protected]
- 模块:[email protected]
- 名称:测试
- parent:null
- parentIdentifier:null
- 路径::
- 插件:[[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]
- processResources:task':processResources'
- processTestResources:task':processTestResources'
- 项目:根项目'测试'
- projectDir:/ Users / mac_wk / IdeaProjects / Test
- projectEvaluationBroadcaster:ProjectEvaluationListener广播
- projectEvaluator:[email protected]65e
- projectRegistry:[email protected]
- 属性:{...}
- rebuildTasks:[clean,build]
- 报告:[email protected]
- reportsDir:/ Users / mac_wk / IdeaProjects / Test / build / reports
- reportsDirName:报告
- 存储库:[org.gradle.api.internal.[email protected]673919a7]
- 资源:[email protected]8
- rootDir:/ Users / mac_wk / IdeaProjects / Test
- rootProject:根项目'Test'
- runtimeClasspath:文件集合
- scriptPluginFactory:[email protected]
- serviceRegistryFactory:[email protected]f
- 服务:ProjectScopeServices
- sourceCompatibility:1.5
- sourceSets:[source set'main',source set'test']]
- 来源:[source set'main',source set'test']
- standardOutputCapture:[email protected]
- 状态:项目状态'EXECUTED'
- 状态:整合
- 子项目:[]
- 目标兼容性:1.5
- 任务:[任务':汇编',任务':构建',任务':构建依赖者',任务':构建需要',任务':检查',任务':班',任务':干净',任务':compileJava' ,task':compileTestJava',任务':jar',任务':javadoc',任务':processResources',任务':processTestResources',任务':test',任务':testClasses']
- 测试:任务':测试'
- testClasses:task':testClasses'
- testReportDir:/ Users / mac_wk / IdeaProjects / Test / build / reports / tests
- testReportDirName:测试
- testResultsDir:/ Users / mac_wk / IdeaProjects / Test / build / test-results
- testResultsDirName:测试结果
- 版本:1.0
大概的看一下就能够知道大概做了什么任务了,为什么会自动创建建立文件夹,因为他默认执行了创建文件的命令,而上面的属性定义了这些任务描述或者属性,我们可以试试,比如咱们执行一下面的这个脚本你就会发觉默认的build并没有自己生成而是变成了自定义的地方采用命令gradle build
- 应用插件:'java'
- sourceCompatibility = 1 0.5
- 版本 = '1.0'
- buildDir = “/ Users / mac_wk / IdeaProjects / Test / build_one”
- 存储库{
- mavenCentral()
- }
- 依赖关系{
- testCompile组:'junit',名称:'junit',版本:'4.11'
- 编译'org.springframework:spring-context:4.1.1.RELEASE'
- }
- 罐{
- 表现{
- 属性“title”:“gradle start”,
- “版本”:版本
- }
- }
命令三:发布的jar的命令
可以通过这样的配置,把jar包发布到本地或者是远程,或者多个目录下对下面的脚本执行gradle uploadArchives
- uploadArchives
- {
- 库{
- flatDir {
- dirs'repos1'
- }
- }
- }
原文地址http://www.bieryun.com/2053.html