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

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

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 63w+ 字,讲解图 2808+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2200+ 小伙伴加入学习 ,欢迎点击围观

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 编写。

相关文章