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:org.gradle.api.internal.project.DefaultAntBuilder@51288417
- antBuilderFactory:org.gradle.api.internal.project.DefaultAntBuilderFactory@60cf62ad
- apiDocTitle:测试1.0 API
- archivesBaseName:测试
- 工件:org.gradle.api.internal.artifacts.dsl.DefaultArtifactHandler@1e0895f5
- asDynamicObject:org.gradle.api.internal.ExtensibleDynamicObject@1ac4ccad
- 汇编:任务':汇编'
- 二进制文件:[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:org.gradle.groovy.scripts.UriScriptSource@14982a82
- buildTasks:[build]
- buildscript:org.gradle.api.internal.initialization.DefaultScriptHandler@4ee5b2d9
- 检查:任务':检查'
- childProjects:{}
- class:class org.gradle.api.internal.project.DefaultProject_Decorated
- 类:任务':类'
- 清洁:任务':干净'
- compileJava:task':compileJava'
- compileTestJava:task':compileTestJava'
- 组件:[org.gradle.api.internal.java.JavaLibrary@72f8ae0c]
- configurationActions:org.gradle.configuration.project.DefaultProjectConfigurationActionContainer@323f3c96
- 配置:[configuration':archives',configuration':compile',配置':default',配置':runtime',配置':testCompile',配置':testRuntime']
- 约定:org.gradle.api.internal.plugins.DefaultConvention@6726cc69
- defaultArtifacts:org.gradle.api.internal.plugins.DefaultArtifactPublicationSet_Decorated@4b6d92e
- defaultTasks:[]
- 依赖关系:org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler_Decorated@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:org.gradle.api.internal.plugins.DefaultExtraPropertiesExtension@7899de11
- 扩展名:org.gradle.api.internal.plugins.DefaultConvention@6726cc69
- fileResolver:org.gradle.api.internal.file.BaseDirFileResolver@290d10ef
- gradle:build'Test'
- 组:
- implicitTasks:[task':dependencies',task':dependencyInsight',task':help',task':projects',task':properties',task':tasks]]
- inheritedScope:org.gradle.api.internal.ExtensibleDynamicObject$InheritedDynamicObject@1bc0d349
- jar:任务':jar'
- javadoc:task':javadoc'
- libsDir:/ Users / mac_wk / IdeaProjects / Test / build / libs
- libsDirName:libs
- 记录器:org.gradle.api.logging.Logging$LoggerImpl@644ded04
- 日志记录:org.gradle.logging.internal.DefaultLoggingManager@5292ceca
- 清单:org.gradle.api.java.archives.internal.DefaultManifest@13d9261f
- metaClass:org.codehaus.groovy.runtime.HandleMetaClass@e9ef5b6 [groovy.lang.MetaClassImpl@e9ef5b6 [class org.gradle.api.internal.project.DefaultProject_Decorated]]
- metaInf:[]
- modelRegistry:org.gradle.model.internal.DefaultModelRegistry@5300cac
- 模块:org.gradle.api.internal.artifacts.ProjectBackedModule@24b52d3e
- 名称:测试
- parent:null
- parentIdentifier:null
- 路径::
- 插件:[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]
- processResources:task':processResources'
- processTestResources:task':processTestResources'
- 项目:根项目'测试'
- projectDir:/ Users / mac_wk / IdeaProjects / Test
- projectEvaluationBroadcaster:ProjectEvaluationListener广播
- projectEvaluator:org.gradle.configuration.project.LifecycleProjectEvaluator@4110765e
- projectRegistry:org.gradle.api.internal.project.DefaultProjectRegistry@1ba359bd
- 属性:{...}
- rebuildTasks:[clean,build]
- 报告:org.gradle.api.reporting.ReportingExtension_Decorated@62e93c3a
- reportsDir:/ Users / mac_wk / IdeaProjects / Test / build / reports
- reportsDirName:报告
- 存储库:[org.gradle.api.internal.artifacts.repositories.DefaultMavenArtifactRepository_Decorated@673919a7]
- 资源:org.gradle.api.internal.resources.DefaultResourceHandler@25d93198
- rootDir:/ Users / mac_wk / IdeaProjects / Test
- rootProject:根项目'Test'
- runtimeClasspath:文件集合
- scriptPluginFactory:org.gradle.configuration.DefaultScriptPluginFactory@2436ea2f
- serviceRegistryFactory:org.gradle.internal.service.scopes.ProjectScopeServices$5@f951a7f
- 服务:ProjectScopeServices
- sourceCompatibility:1.5
- sourceSets:[source set'main',source set'test']]
- 来源:[source set'main',source set'test']
- standardOutputCapture:org.gradle.logging.internal.DefaultLoggingManager@5292ceca
- 状态:项目状态'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