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

Gradle是以Groovy
【菜科解读】
毫无疑问,现在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,命令行,黑,魔法,迷你世界最火的地图救粉丝,迷你世界最火的跑酷地图
这个游戏的画风非常可爱,玩家可以自己创造一个属于自己的世界,在这个世界里,你可以建造房屋,种植各种植物,还可以驯养动物,,养宠物等等。
这个游戏不仅可以锻炼孩子的逻辑思维能力,还可以培养孩子的耐心,让孩子更加有责任心。
而且这个游戏的难度并不高,只只要家长陪着孩子一起玩,就可以轻松上手。
所以很多家长都喜欢带着孩子一起玩。
一:迷你世界最火的斗罗大陆地图我也很想玩这个游戏,找了一段时间在玩go找到可以预约,然后测试的时候有通知我还给了码,觉得很靠谱,所以现在手游都在那边预约迷你世界斗罗大陆,迷你世界斗罗大陆版的激活码是什么?二:迷你世界最火的跑酷地图把地图的那个文件夹(包含子文件夹的大文件夹)整个放进map文件夹就行了把压缩包解压以后一般是一个文件夹,里面会有几个子文件夹和文件去社区找到地图下下来以后,一般是个压缩包三:迷你世界最火拍戏地图迷你号大家平时是否喜欢玩一些拍戏地图呢?在这些地图中,玩家们可以利用一些特定的场景搭配一些台词或者服饰来完成拍戏,不仅非常适合很多喜欢拍戏的玩家,而且地图的可玩性和开放性非常强,比如今天给大家介绍的这款超豪华的长江三峡,就有十足的可玩性,一起来看看吧!这张地图还原了长江三峡的影视基地,大家如果到过影视基地,就知道这里是非常好玩的地方。
首先大家会化身成为演员,作为一个演员自然要知道自己所要拍摄的剧本是如何的。
java文件审批技术要点?Spire.DocforJava
该版本支持为word文件段落设置“如果定义了文档网格,则对齐到网格”,并且增强了Word到PDF的转换功能,此外还修复了获取的页码不正确等已知问题。
详情请阅读以下内容。
新功能:支持为word文件段落设置“如果定义了文档网格,则对齐到网格”。
Document document = new Document(inputFile);Paragraph pa = document.getSections().get(0).getParagraphs().get(0);pa.getFormat().setSnapToGrid(true); 问题修复:修复了将.docx文件保存为.doc后,无法打开结果文件的问题。
修复了word文件转PDF后内容格式不正确的问题。
修复了word文件转PDF后表格位置不正确的问题。
修复了Html转word文件时标签不生效的问题。
修复了另存为 .docx 文件后表格边框发生变化的问题。
修复 了SmartArt 转换为图像失败的问题。
修复了word文件转PDF后分页不正确的问题。
修复了 SmartArt 转为图片后内容丢失的问题。
修复了应用程序在将word文件转换为PDF时抛出“AssertionError”的问题。
修复了word文件转PDF后图片颜色不正确的问题。
修复了Html转word后表格格式不正确的问题。
修复了Word文件Shape保存到图片时应用程序抛出“NullPointerException”的问题。
修复了word文件转PDF后页码格式不正确的问题。
修复了应用程序在将word文件转换为PDF时抛出“NullPointerException”的问题。
修复了应用在 IBM websphere 上使用时抛出“X509CertImpl”错误的问题。
修复了获取的页码不正确的问题。
修复了加载word文件时应用程序抛出“Input string was not in the correct format”的问题。
修复了应用程序在将 word 文件转换为 PDF 时抛出“IllegalStateException: Cannot convert 'horz'”的问题。
获取Spire.Doc for Java 10.5.10请点击: Spire.Doc for JAVA | 在线试读 ,菜叶说说