我使用gradle3.5构建系统,并在Java项目中进行了多个单元和集成测试。当我更改源文件(sourceSets)时,gradle的编译避免和增量编译确保只编译相关的源文件,这可以节省大量时间。但是,所有测试都会针对sourceSet中的每个更改运行。gradle能否识别并运行单元测试的相关子集而不是全部?如果没有,是否有办法实现这一点? 最佳答案 是的,Gradle可以做到这一点,但AFAIK并非开箱即用。如果任务实现为IncrementalTask,Gradle任务可以判断哪些文件已被更改.Gradle中的测试任务不是增量的。
我想调试一些同时运行的JVM实例。我知道我可以使用--debug-jvm运行gradle,这样JVM会等到我启动IDE调试器,以便它连接到JVM,但默认情况下它使用端口5005。这对于调试JVM的一个实例来说很好......但是如果我想调试多个实例,我将需要定义一个与5005不同的端口。我如何使用gradle实现这一点? 最佳答案 在我的例子中,我想调试一个特定的文件,所以我在build.gradle中包含了以下代码:taskexecFile(type:JavaExec){main=mainClassclasspath=source
如何配置GRADLE_USER_HOME选项?我的Windows用户名包含一个空格(C:\Users\BazFoo),我认为构建因此失败。E:\workspace-sts-3.0.0.RELEASE\agweb\ag-client\ag-shared\build\classes\mainerror:Classcom.acme.client.conn.rmi.SessionRMIImplnotfound.error:ClassFoo\.gradle\caches\artifacts-13\filestore\xerces\xercesImpl\2.10.0\jar\9161654d2af
我有以下Java主类,我正在尝试使用IntelliJIDEA中的Gradle插件编译和运行它:packagecom.mikidep.bookshop;importjava.io.IOException;importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args)throwsIOException{Scannerin=newScanner(System.in);System.out.print("Inseriscitestoqui:");System.out.println(in.nextLine()
我正在研究Gradle并且对它非常感兴趣,特别是因为(它出现)它允许在构建过程中引入继承。例如,如果我有一个可以打包并部署到GoogleAppEngine实例以及AmazonEC2实例的JavaWeb应用程序,我需要一个复杂的构建,它可以采用相同的Java、XML、PROPERTIES、CSS和图像文件和包/将它们部署到2个彻底-不同打包的WAR文件中。GAE应用程序在打包方式方面非常具体;EC2(几乎)只要求您符合servlet规范。通过从SDK附带的appcfg.sh脚本运行update命令来“部署”GAE应用程序;EC2有自己的方式来部署应用程序。关键是,对于两个PaaS提供商来
我已经在groovy中实现了一个自定义任务。如果我为其在groovy(X.groovy)中实现的实用程序类提供一个实用程序类并将其放置在buildsrc中,任务就可以完成。如果我在Java(Y.java)中实现等效类并将其放在同一目录中,任务将失败并显示以下错误消息::buildsrc:compileGroovystartupfailed:Generalerrorduringconversion:Couldnotloadclass'com.myinc.gradle.api.data.Y'fromfile:/project/buildsrc/build/classes/main/com/
我正在运行来自http://spring.io的教程关于RESTful网络服务。我希望能够从Eclipse启动我的Web项目作为Gradle构建(RunAs=>GradleBuild...),然后在我完成测试后停止它。我知道如何启动它,但如果不退出Eclipse(SpringToolSuite),我就无法让它停止。有什么建议吗? 最佳答案 借自GradleTomcatplugin文档,只需这样做:ext{tomcatStopPort=8081tomcatStopKey='stopKey'}taskdoTomcatRun(type:o
这很令人费解。我有一个使用Gradle构建的多模块多语言JVM项目。我有几个java模块和几个scala模块。scala模块使用ScalaTest作为测试框架。我将Gradle设置为使用scalatestplugin运行测试。我让整个事情在IntelliJ中运行了大约一个月(使用Gradleidea插件)。现在突然之间,ScalaTest规范不再从IDE运行,并出现以下错误:UnabletoloadaSuiteclass.Thiscouldbeduetoanerrorinyourrunpath.Missingclass:com.mypackage.MySpec有人知道这是怎么回事吗?我
我正在学习Slick2D,它完全符合我的2DJava游戏编程目的。不幸的是,我有一个问题。我不认为它是特定于Slick2D的,因为我认为JavaGraphics2D也会发生同样的情况。在Ubuntu中(我使用的是Ubuntu12.04),按下Alt键会显示“DashHome”,与点击屏幕左上角的图标相同(Windows用户,“DashHome”有点像“开始菜单)。当我的应用程序运行时,Alt键仍然具有此行为并显示DashHome。当我的游戏以窗口模式运行时,这没什么大不了的,因为我可以进入暂停状态。然而,当处于全屏模式时,这是一个大问题,因为系统离开全屏并且在全屏和窗口之间切换非常耗时
我想在animalSniffer插件第一个任务依赖于所有sourceSets中所有生产类(Java、Groovy、Scala)的编译,第二个任务依赖于所有sourceSets中所有测试类的编译(可能分开test和集成测试).我不想依赖于*classes任务,因为*classes任务应该依赖于animalSniffer任务(检测Java版本API不兼容编译后可以停止构建)。在Gradle中有没有比检查AbstractCompile任务名称的实例是否以“compileTest”开头更好的方法来实现这一点? 最佳答案 您可以使用tasks