我正在为我的项目使用 Eclipse Java。我想向用户显示构建时间。如何让 Eclipse(或插件)将构建时间戳插入属性文件?
3 回答
您可以使用maven或ant。一个快速谷歌的 Maven 和构建时间戳返回了这个。
Maven 也非常适合管理依赖项等,但需要一些时间来适应它。Ant 稍微容易一些,但只是用于构建。
使用 Ant,您可以将构建时间戳保存到属性文件中。例如:如果您有一个名为 project.props 的属性文件,那么在 Ant 中您可以定义一个可以在每次构建期间运行的目标:
<target name="buildtime">
<tstamp>
<format property="buildtime" pattern="yyyy MMMM dd HH:mm:ss" locale="en"/>
</tstamp>
<echo message="Current time and date: ${buildtime}" />
<!-- property name="buildtime" value="${buildtime}"/ -->
<propertyfile file="project.props">
<entry key="buildtime" type="date" value="${builltime}" />
</propertyfile>
</target>
构建后,属性文件将使用构建时间戳进行更新。
我通过添加一个'builder'解决了这个特殊问题(在Eclipse 3.8.1 debbuild中).. [Project] --> Properties --> Builders --> New --> Program
在这里,我在我的项目目录中添加了一个 bash 脚本的链接,该脚本将一个属性文件写入我的项目资源/属性文件夹,其中 key=value 对主要、次要、svn 修订、时间戳等。确保脚本构建器高于Java 生成器。
在我的项目中,我在请求时将这些属性读入版本对象。
这可以正常工作,尽管它非常不稳定,除非我在“构建选项”选项卡中选择“运行构建器:”下的所有选项。Eclipse 似乎存储了很多冗余状态,尤其是关于文件系统。使用这些设置,版本会重新生成很多,但这适合我。我有相同的机制为我的项目使用的每个模块生成版本属性。
最大的反特性是在导出 jar 文件时无法触发此行为。最好有一个选项在导出之前触发清理/构建。
Ps:我有一个独立于 Eclipse 的并行 Ant 构建,它使用相同的 bash 脚本来生成属性文件。在 Eclipse 中使用 Ant 或 Maven 不适合我。