当前位置: 首页 > 知识库问答 >
问题:

如何在运行Gradle时获得应用程序中的VM选项?

童花蜂
2023-03-14
gradle test -DtestProfile=dockerTest

当我试图从应用程序中获取这个变量时:

System.getProperty("testProfile")

我得到零。

如何在应用程序中正确获取VM选项?

application-local.yml
application-test.yml
application-dockerTest.yml
...
class TestActiveProfilesResolver : ActiveProfilesResolver {

    override fun resolve(testClass: Class<*>): Array<String> =
        System.getProperty("testProfile")
}
@ActiveProfiles(resolver = TestActiveProfilesResolver::class)

但是system.getproperty(“testprofile”)==null。

共有1个答案

韦业
2023-03-14

这里有两个JVM需要考虑

  1. Gradle的JVM
  2. 应用程序的JVM

当向Gradle传递“-d”参数时,您正在Gradle的JVM中设置一个系统属性,该JVM与运行您的应用程序的JVM不同

    null
test {
   systemProperty 'testProfile', 'dockerTest'
}
apply plugin: 'application'

run {
   systemProperty 'testProfile', 'dockerTest'
}
 类似资料:
  • 问题内容: 我已经用Java编写了一个应用程序,并且想添加一个功能来报告该应用程序的正常运行时间。JVM中是否有可以执行此操作的类/方法? 我应该在应用程序启动时保存时间戳,然后在请求时计算与当前正常运行时间的差额吗? 用Java检索应用程序正常运行时间的更好方法是什么? 问题答案: 您可以使用RuntimeMXBean.getUptime()

  • 只返回Java应用程序运行的JVM的正常运行时间。但这并不是Java应用程序的正常运行时间。Java应用程序可以是在同一个JVM进程中运行的几个应用程序之一,也可以在JVM启动后的X个时间段内启动。 是否提供了获取Java应用程序正常运行时间的功能?

  • 在我的应用程序中,我创建了一个类名untitility。在这个类名中,我从代码中获取read_external_storage的权限。但问题是,当我在应用程序上单击“拒绝”时,我找不到警报通知来再次设置“允许”。一开始我就有“不再问”的选项。一旦我点击它,对话框就会消失。现在运行应用程序后,如果我点击拒绝,我再也找不到对话框消息,使它再次允许。我如何修改我的代码,以显示这个消息每次。 我的另一个类

  • 问题内容: 我正在使用log4j创建一个Java应用程序。我给出了配置log4j文件的绝对路径,还给出了生成的日志文件(生成此日志文件的位置)的绝对路径。我可以通过以下方式在运行时获取Java Web应用程序的绝对路径: 但是在普通的Java应用程序中,我们可以使用什么呢? 问题答案: 尝试;

  • 问题内容: 我在Python中有一个命令行程序,需要花一些时间才能完成。我想知道完成跑步所需的确切时间。 我看过该模块,但似乎仅适用于少量代码段。我想安排整个节目的时间。 问题答案: Python中最简单的方法: 假设你的程序至少需要十分之一秒才能运行。 输出: