使用IntelliJ路径变量,如何在Tomcat服务器运行配置中设置系统属性?

8
在Eclipse中,您可以设置-D选项以包括在IDE设置中定义的{}变量。 IntelliJ似乎通过“路径变量”提供此功能。但是,如果按照其帮助文档进行操作,您应该能够在$ dollar_characters $之间引用这些变量。进一步的研究似乎表明,仅适用于您项目文件内部,并且替换是在构建时完成的。我正在尝试创建一个共享服务器配置,在其中可以由其他开发人员交换几个系统属性,但这个问题使我困惑不解。
4个回答

11

您可以通过将其添加到VM选项输入字段中,在Tomcat服务器运行/调试配置窗口上直接设置VM选项。您可以直接将-Dcustom_property=value放入该字段中,然后通过System.getProperty("customer_property")访问它。


2
我认为你的意思是 System.getProperty("custom_property"),而不是 "customer_property"。 - Holm

8

经过深入挖掘和研究看似不相关的问题,我开始了解如何完成这个目标:

  1. 根据需要设置你的路径变量
  2. 创建你要共享的运行配置并勾选分享复选框。
  3. 在你的配置的VM选项字段中放入存根(即-Dsystem.property="variable here")。
  4. .idea/runConfigurations中找到你的配置,并用$PATH_VARIABLE$替换掉存根,如果该值包含空格,则将它们放在引号内。
  5. 重新打开你的运行配置编辑配置屏幕,注意变量扩展已成功。更好的是,将其检入并让同事检出(在设置自己的路径变量后),并注意变量扩展与他们的自定义值一起工作。

注意:你可能认为直接将$PATH_VARIABLES$放入那些配置屏幕中是可行的,但只有在直接编辑XML文件时才有效。


2

感谢Joel Wilson在使用IntelliJ Configurations中使用$PATH_VARIABLES$方面的探索。

为了更好地阐述你的发现,我发现如果配置文件在文件系统中更改,则立即由IJ重新加载($PATH_VARIABLES$被扩展)。但是,如果您在IJ首选项中进行更改,则不会重新加载。

但是,如果您:touch〜/ IntelliJ / yourProject / .idea / runConfigurations * .xml

这就足以重新加载您的配置。
我还发现,如果您关闭并重新打开IJ,则这些内容也将自动扩展。

如果您查看这些.xml文件,扩展的值永远不会被存储。扩展发生在任何时候加载IJ或更改文件时。

总之,如果您想在存储库中共享常见配置,然后在IJ PATH变量中设置用户变量,您可以这样做,并且它们将自动扩展。

如果您改变了PATH变量,新值将包含修改的PATH_VARIABLE内容。

如果您在操作系统级别查看文件,则会看到保留的变量。但是,如果您在Configuration editor中查看,则替换的值始终会显示在那里(因此您无法直接看到它们使用了变量)。最好查看OS文件。

jim


touch命令是用来让IntelliJ重新加载配置的吗? - Javier Diaz
刚看到这个消息,晚了9-10个月,回复有些晚了。文件属性的更改似乎会促使IntelliJ重新加载文件,因为它在操作系统中发生了变化。这是在Mac上测试的,没有在Windows上测试。 - Jim Kohl


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接