Gradle 优点:使用 Gradle 运行 Java 任务

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

Gradle 当然是 Java 相关项目的绝佳构建工具。如果我们的项目中有任务需要执行 Java 应用程序,我们可以使用 JavaExec 任务。当我们需要将 Java 系统属性传递给 Java 应用程序时,我们可以设置 JavaExec 任务的 systemProperties 属性。我们可以为 systemProperties 属性分配一个值,或者使用方法 systemProperties 将属性添加到已分配的现有属性中。现在,如果我们想在运行 Gradle 时从命令行定义系统属性,我们必须将属性传递给任务。因此,我们必须重新配置 JavaExec 任务并将 System.properties 分配给 systemProperties 属性。

在下面的构建脚本中,我们重新配置项目中的所有 JavaExec 任务。我们使用 systemProperties 方法并使用值 System.properties 。这意味着来自命令行的任何系统属性都会传递给 JavaExec 任务。


 apply plugin: 'groovy'
apply plugin: 'application'

mainClassName = 'com.mrhaki.sample.Application'

repositories.jcenter()

dependencies { compile 'org.codehaus.groovy:groovy-all:2.4.4' }

// The run task added by the application plugin // is also of type JavaExec. tasks.withType(JavaExec) { // Assign all Java system properties from // the command line to the JavaExec task. systemProperties System.properties }

我们编写一个简单的 Groovy 应用程序,它使用 Java 系统属性 app.greeting 将消息打印到控制台:


 apply plugin: 'groovy'
apply plugin: 'application'

mainClassName = 'com.mrhaki.sample.Application'

repositories.jcenter()

dependencies { compile 'org.codehaus.groovy:groovy-all:2.4.4' }

// The run task added by the application plugin // is also of type JavaExec. tasks.withType(JavaExec) { // Assign all Java system properties from // the command line to the JavaExec task. systemProperties System.properties }

现在,当我们执行 run 任务(类型为 JavaExec )并在我们的命令中定义 Java 系统属性 app.greeting 时,应用程序将使用它:

$ gradle -Dapp.greeting=Gradle! -q run


Hello Gradle!

用 Gradle 2.7 编写。