【问题标题】:Does Maven Have a mechanism to read the machine nameMaven是否有读取机器名的机制
【发布时间】:2012-07-24 20:09:39
【问题描述】:

我正在编写一个 Maven 项目,我想在生成的 WAR 中包含一个文件,该文件将包含一些构建时间信息。通常这会像

  • 构建时间/日期戳
  • WAR 构建者的用户名
  • POM 中指定的应用版本

这些都相当简单,因为有 maven 属性可以为我提供所需的信息。

我还想包含机器名称。我知道 Windows 将此信息存储在名为“COMPUTERNAME”的环境变量中,而 *nix 使用 hostname 命令。

是否有某种独立于平台的方式来获取这些信息,以便我可以将其写入我的文本文件?

【问题讨论】:

  • 这可能对你有用:stackoverflow.com/a/7450469/966590
  • 完美 - 谢谢。问:如何将此标记为答案以便其他人可以关注?
  • 您可以为自己的问题写一个答案并将其标记为已接受。如果你愿意,我可以做到。

标签: maven maven-3


【解决方案1】:

我通过调用 Maven Ant 任务来做到这一点。其中我使用了以下 Ant 任务:

<tstamp> 生成时间戳属性 <propertyfile> 创建一个包含上述时间戳、用户名等属性的属性文件。

您可以使用 Ant <exec> 任务来执行 hostname 并指定一个输出属性来写入这个值。

这在 src/main/resources 目录中创建了一个属性文件,然后我将其嵌入到 .war 文件中

【讨论】:

  • 谢谢,但我对机器名称特别感兴趣。将值写入准备好的文件很简单(我已经让它适用于用户名、时间戳等)
  • 查看我的评论。上面的主机名
  • 我明白了——我知道命令“主机名”在 *nix 上有效,但不知道它在 Windows 上也可用。塔
【解决方案2】:

正如安德鲁·洛格维诺夫所说,

谢谢:-)

【讨论】:

  • 我将以此作为解决方案。它感觉更干净,不需要特定于操作系统的工具。
猜你喜欢
  • 2021-12-07
  • 2021-09-30
  • 1970-01-01
  • 2011-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-16
  • 1970-01-01
相关资源
最近更新 更多