java最火构建工具Gradle命令行黑魔法

作者:小菜 更新时间:2025-02-07 点击数:
简介:前往java软件专题 毫无疑问,现在Gradle已经成为java世界最火的构建工具,风头已经盖过了冗余的ant,落后的maven。

Gradle是以Groovy

【菜科解读】

前往java软件专题

毫无疑问,现在Gradle已经成为java世界最火的构建工具,风头已经盖过了冗余的ant,落后的maven。

Gradle是以Groovy语言编写的一套构建脚本的DSL,由于Groovy语法的优雅,所以导致Gradle天生就有简洁、可读性强、灵活等特性。

Gradle的命令行功能也非常强大。

本人从maven转到Gradle,深深被gradle强大的命令行功能折服。

通过命令行来实现Gradle的各种特性,就像魔法师在表演魔法一样。

日志输出。

Gradle中的日期有6个层级。

从高到低分别是 ERROR(错误信息)、QUIET(重要信息)、WARNGING(警告信息)、LIFECYCLE(进程信息)、INFO(一般信息)、DEBUG(调试信息)。

在执行gradle task时可以适时的调整信息输出等级,以便更方便的观看执行结果。

比如一个build.gradle有这样一个task

1task hello

加入-q与不加-q的输出结果不同。

1$ gradle hello:hellohello world!BUILD SUCCESSFULTotal time: 3.546 secs$ gradle -q hellohello world!

堆栈跟踪。

如果执行gradle task失败时,如果想得到更详细的错误信息,那么就可以使用-s(或--stacktrace)来输出详细的错误堆栈。

你还可以使用-S(或--full-stacktrace)来输出全部堆栈信息,不过一般不推荐这样做,因为gradle是基于groovy语言,而groovy作为一门动态语言可能会输出与你的错误代码毫不相关的信息。

跳过指定的测试。

如果你在执行build的时候想跳过test task,那么可以使用-x命令。

1$ gradle build -x test:compileJava UP-TO-DATE:processResources UP-TO-DATE:classes UP-TO-DATE:jar UP-TO-DATE:assemble UP-TO-DATE:check:buildBUILD SUCCESSFULTotal time: 3.529 secs

继续执行task而忽略前面失败的task。

默认情况下,如果有某个task失败,后续的task就不会继续执行。

但是有时候我们想运行所有的task来一次性得到所有的构建错误,那么我们可以使用--continue命令。

使用--continue命令后即使遇到某些task失败也不会停止后续task的执行。

但是需要注意的是如果某个task失败了,那么依赖于这个task的其他task依旧不会执行,因为这会带来不安全的因素。

调用task时使用短名或缩写。

如果一个task的名称过程,那么调用时可以只输入部分名称即可调用,无需输入全名。

1task helloWorld

比如调用helloWorld可以通过全名调用、前缀调用或首字母调用。

1$ gradle -q helloWorldhello world!$ gradle -q hellhello world!$ gradle -q hWhello world!

使用指定的gradle文件调用task。

默认情况下,如果你调用gradle task,那么首先会寻找当前目录下的build.gradle文件,以及根据settings.gradle中的配置寻找子项目的build.gradle。

但是有时候我们想指定使用某个gradle文件,那么可以使用-b命令。

比如当前目录有个子目录subproject1,里面有个叫hello.gradle。

subproject1/hello.gradle

1task helloWorld

那么在当前目录可以使用以下命令调用这个task。

1$ gradle -b subproject1/hello.gradle helloWorld:helloWorldhello world!BUILD SUCCESSFULTotal time: 3.752 secs

使用指定的项目目录调用task。

前面已经说过,执行gradle的task默认会在当前目录寻找build.gradle及settings.gradle文件。

如果我们想在任何地方执行某个项目的task,那么可以使用-p来指定使用的项目。

1gradle -q -b learnGradle helloWorld

这条命令是调用learnGradle这个项目下的helloWorld task。

显示task之间的依赖关系。

众所周知,使用gradle tasks可以列出当前所有可被使用的task,但是并没有显示task之间的依赖关系。

我们可以加上--all来显示 task的依赖关系。

1$ gradle tasks --all………………Other tasks-----------task0 task1 task2 task3从上面可以看出task0依赖task1、task2及task3。

查看指定阶段的依赖关系。

使用gradle dependencies可以查看项目中包的依赖关系。

不过是列出了所有阶段的依赖,如果项目中依赖复杂的话看起来有点头痛。

那么可以使用--configuration来查看指定阶段的依赖情况。

1$ gradle -q dependencies------------------------------------------------------------Root project------------------------------------------------------------archives - Configuration for archive artifacts.No dependenciescompile - Compile classpath for source set 'main'.No dependenciesdefault - Configuration for default artifacts.No dependenciesruntime - Runtime classpath for source set 'main'.No dependenciestestCompile - Compile classpath for source set 'test'.\--- junit:junit:4.11 \--- org.hamcrest:hamcrest-core:1.3testRuntime - Runtime classpath for source set 'test'.\--- junit:junit:4.11 \--- org.hamcrest:hamcrest-core:1.3

使用gradle -q dependencies --configuration testCompile可以只查看testComiple的依赖。

1$ gradle -q dependencies --configuration testCompile------------------------------------------------------------Root project------------------------------------------------------------testCompile - Compile classpath for source set 'test'.\--- junit:junit:4.11 \--- org.hamcrest:hamcrest-core:1.3

查看指定dependency的依赖情况。

假如我想查看项目中有没有引入junit,那些阶段引入了junit,那么可以使用dependecyInsight来查看。

1$ gradle dependencyInsight --dependency junit --configuration testCompile:dependencyInsightjunit:junit:4.11\--- testCompile

注意dependencyInsight默认只会查看compile阶段的依赖,如果要查看其他阶段可以使用--configuration来指定。

使用--profile命令行可以产生build运行时间的报告。

该报告存储在build/report/profile目录,名称为build运行的时间。

1$ gradle build --profile:compileJava UP-TO-DATE:processResources UP-TO-DATE:classes UP-TO-DATE:jar UP-TO-DATE:assemble UP-TO-DATE:compileTestJava UP-TO-DATE:processTestResources UP-TO-DATE:testClasses UP-TO-DATE:test UP-TO-DATE:check UP-TO-DATE:build UP-TO-DATEBUILD SUCCESSFULTotal time: 3.726 secs

然后在build/report/profile目录下可以看到build的report。

这个报表非常有用,尤其是在在缩短build时间时可以快速定位那些耗时长的task。

试运行build。

如果你想知道某个task执行时那些task会被一起执行,但是你又不想真正的执行这些task,可以使用-m来试运行。

1$ gradle -m build:compileJava SKIPPED:processResources SKIPPED:classes SKIPPED:jar SKIPPED:assemble SKIPPED:compileTestJava SKIPPED:processTestResources SKIPPED:testClasses SKIPPED:test SKIPPED:check SKIPPED:build SKIPPEDBUILD SUCCESSFULTotal time: 3.53 secs

这样我们可以一目了然的看到那些task被执行了,又不需要花太多的时间。

Gradle的图形界面。

其实Gradle自带一个图形界面来让习惯gui操作的人来操作Gradle。

打开方式很简单。

1$ gradle --gui

这样就会弹出一个gui界面。

通过这个gui界面可以很方面的执行gradle的各种命令,还可以将常用的命令保存为favorites。

该gui的配置信息默认被存储在当前项目的gradle-app.setting文件中。

注意使用gradle --gui会阻塞当前终端,可以使用gradle --gui&来实现后台运行。

重新编译Gradle脚本。

第一次运行Gradle命令,会在项目更目录下生成一个.gradle目录来存放编译后的脚本。

只有当构建脚本发生修改时采用重新编译。

我们可以使用--recompile-scripts来强行重新编译。

java,最火,构建,工具,Gradle,命令行,黑,魔法,

Win7系统电脑通过cmd命令设置Java环境变量的方法

想重装系统不会怎么办?菜科网一键重装系统轻松在线帮您搞定系统重装问题。

软件支持 在线重装、U盘制作、自定义重装 等多种模式。

有位Win7系统电脑用户想要通过cmd命令检测Java环境变量是否配置成功,可是就是不知道如何来设置。

别急,现在,小编就以Win7系统为例,向大家来介绍一下电脑中通过cmd命令来检测Java环境变量是否配置成功的方法,需要的用户一起来看看下文具体操作吧。

具体操作: 1、按Win+R打开运行,输入cmd,点击确定; 2、在命令提示符中输入javac; 3、点击回车后如果出现一系列的明了那个及其解释,就说明环境变量配置好了; 4、但是如果提示 不是内部或外部命令,也不是可运行的程序或批处理文件 ,就说明配置错误。

要是你也想要此问题的解决方法的话,不妨参考上面的操作吧。

更多有关系统问题请关注:菜科网官网。

注意:本站所刊载的文章均为学习交流之用,请勿用于商业用途。

对于商业使用,请联系各自版权所有者,否则法律问题自行承担。

Win7系统升级指南:全面解析升级步骤与要点 Win7系统损坏修复教程:详细步骤助你快速解决问题 Win7系统电脑通过cmd命令设置Java环境变量的方法 分类于: 回答于:2015-12-21 有位Win7系统电脑用户想要通过cmd命令检测Java环境变量是否配置成功,可是就是不知道如何来设置。

别急,现在,小编就以Win7系统为例,向大家来介绍一下电脑中通过cmd命令来检测Java环境变量是否配置成功的方法,需要的用户一起来看看下文具体操作吧。

具体操作: 1、按Win+R打开运行,输入cmd,点击确定; 2、在命令提示符中输入javac; 3、点击回车后如果出现一系列的明了那个及其解释,就说明环境变量配置好了; 4、但是如果提示 不是内部或外部命令,也不是可运行的程序或批处理文件 ,就说明配置错误。

要是你也想要此问题的解决方法的话,不妨参考上面的操作吧。

更多有关系统问题请关注:菜科网官网。

菜科网系统致力于解决 Windows 系统重装解决方案,提供高效、安全、免费的系统重装服务。

Win8.1提示安装Java内部错误2203的解决方法

想重装系统不会怎么办?菜科网一键重装系统轻松在线帮您搞定系统重装问题。

软件支持 在线重装、U盘制作、自定义重装 等多种模式。

用户在安装软件的过程中有时会遇到一些问题,不如,有些用户在Win8.1系统中安装软件时提示 安装Java内部错误2203 ,导致无法安装,具体如下图所示。

那么,当遇到此问题时该怎么来解决呢?下面,小编就来和大家介绍Win8.1安装软件提示内部错误2203问题的解决方法。

方法一:更改Temp的完全控制权限C:\Users\Username\AppData\Local\Temp右键单击该目录,属性--安全--编辑--添加--输入system--确定--勾选 完全控制 --确定--确定。

方法二:更改用户变量中的TEMP设置 1、右键我的电脑,属性 2、在左侧控制面板主页(以win8/8.1为例)下方找到 高级系统设置 单机打开 3、在 系统属性 选项卡中找到 高级 4、点击右下角 环境变量 5、找到TEMP用户变量,点击编辑 6、在变量值中填入 %USERPROFILE%\Local Settings\Temp 如果本身有变量值的话,就接着在原本的变量值后填 ;%USERPROFILE%\Local Settings\Temp 要是用户在安装软件时提示 安装Java内部错误2203 问题的话,可以参考上面介绍的操作方法来处理,更多有关系统问题敬请关注菜科网官网。

注意:本站所刊载的文章均为学习交流之用,请勿用于商业用途。

对于商业使用,请联系各自版权所有者,否则法律问题自行承担。

Win7系统升级指南:全面解析升级步骤与要点 Win7系统损坏修复教程:详细步骤助你快速解决问题 Win8.1提示安装Java内部错误2203的解决方法 分类于: 回答于:2016-01-20 用户在安装软件的过程中有时会遇到一些问题,不如,有些用户在Win8.1系统中安装软件时提示 安装Java内部错误2203 ,导致无法安装,具体如下图所示。

那么,当遇到此问题时该怎么来解决呢?下面,小编就来和大家介绍Win8.1安装软件提示内部错误2203问题的解决方法。

方法一:更改Temp的完全控制权限C:\Users\Username\AppData\Local\Temp右键单击该目录,属性--安全--编辑--添加--输入system--确定--勾选 完全控制 --确定--确定。

方法二:更改用户变量中的TEMP设置 1、右键我的电脑,属性 2、在左侧控制面板主页(以win8/8.1为例)下方找到 高级系统设置 单机打开 3、在 系统属性 选项卡中找到 高级 4、点击右下角 环境变量 5、找到TEMP用户变量,点击编辑 6、在变量值中填入 %USERPROFILE%\Local Settings\Temp 如果本身有变量值的话,就接着在原本的变量值后填 ;%USERPROFILE%\Local Settings\Temp 要是用户在安装软件时提示 安装Java内部错误2203 问题的话,可以参考上面介绍的操作方法来处理,更多有关系统问题敬请关注菜科网官网。

菜科网系统致力于解决 Windows 系统重装解决方案,提供高效、安全、免费的系统重装服务。

加入收藏
               

java最火构建工具Gradle命令行黑魔法

点击下载文档

格式为doc格式

  • 账号登录
社交账号登录