在webapp中获取当前的svn版本

2023-12-20

在 java web 应用程序中显示/使用修订号的最佳方式是什么?

我们只使用 ant 来构建我们的 .war 存档,没有构建服务器之类的。我希望有某种 if $ref 可以写入资源文件中,但这仅在提交相关文件时更新。我在全球范围内都需要它。

你会推荐什么?更新某些文件的提交后触发器? 自定义 Ant 脚本?有没有一种更简单的方法来做到这一点? 或者最好有我自己的独立于 svn 的版本号。

编辑:很好的建议!非常感谢您的回答!


我们使用以下 ant 任务将 svn 版本包含在 jar 的属性中,以及正在使用的其他包的版本

<target name="package" depends="compile" description="Package up the project as a jar">
<!-- Create the subversion version string -->
<exec executable="svnversion" failifexecutionfails="no" outputproperty="version">
  <arg value="."/> 
  <arg value="-n"/>
</exec>
<!-- Create the time stamp -->
<tstamp>
  <format property="timeAndDate" pattern="HH:mm d-MMMM-yyyy"/>
</tstamp>

<jar destfile="simfraserv.jar">
  <manifest>
    <attribute name="Built-By"                value="${user.name} on ${time.date}" />
    <attribute name="Implementation-Version"  value="${svn.version}" />
    <attribute name="Implementation-Java"     value="${java.vendor} ${java.version}" />
    <attribute name="Implementation-Build-OS" value="${os.name} ${os.arch} ${os.version}" />
    <attribute name="JVM-Version"             value="${common.sourcelevel}+" />        
  </manifest>
  <fileset dir="bin">
    <include name="**/*.class"/>
  </fileset>
  <fileset dir="src">
    <include name="**"/>
  </fileset>
</jar>
</target>

然后你可以像这样在你的网络应用程序中访问它

String version = this.getClass().getPackage().getImplementationVersion();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在webapp中获取当前的svn版本 的相关文章

随机推荐

  • 无法使用自定义 DelegateProxy 和协议接收事件

    我尝试将 DifficultyViewDelegate 的委托迁移到可观察的 这是我的 DifficultyViewDelegate objc protocol DifficultyViewDelegate class func level
  • MSK 不删除旧消息

    我有三个 MSK 集群 开发 非产品和产品 它们都具有以下集群配置 没有主题级别配置 auto create topics enable false default replication factor 3 min insync repli
  • d3.js 3D 数组插值

    代码在这里 http jsfiddle net S48QX http jsfiddle net S48QX 我想根据3D数据集绘制图像 例如 var data x 1 428 y 0 500 energy 0 458 x 1 428 y 1
  • 本地主机错误

    我在index php中有代码 在 head php 中
  • Mono 没有从我的 app.config 读取值?

    我有一个标准app config对于在项目 设置 选项卡中添加设置时由 Visual Studio 2010 创建的 NET 4 0 控制台应用程序 如 MSDN 上所述 应用程序设置 http msdn microsoft com en
  • 当 Openshift 说“驱逐”我的 pod 时,这是什么意思 - 为什么它一直这样做?

    我正在使用 OpenShift 3 StarterOpenShift 在线 http www openshift com运行一个小型网络项目 过去两个月一直运行良好 昨天突然停止运行 我发现部署只是陷入了 创建容器 当我尝试重建并重新启动项
  • 使 PowerShell 脚本在全局范围内运行 cmdlet

    我编写了以下 PowerShell 脚本 function Reload Module string moduleName module Get Module moduleName Remove Module moduleName Erro
  • 如何将鼠标光标从用户代码中移出?

    我的数据来自arduino 它从传感器获取数据 我想让用户程序处理数据 从 dev ttyUSB0 读取数据后 之后我需要使用程序的输出来控制鼠标光标 我真的很想避免此时编写内核驱动程序 推荐的方法是什么 在 Linux 环境中 也许是 X
  • 在 IE7 或 IE8 中查看打印 CSS

    我正在调试一个在打印时出现元素定位问题的网站 我有一个单独的 print css 文件 由具有 media print 属性的链接元素链接 此问题仅出现在IE7和IE8中 我正在寻找一种使用打印媒体类型查看页面的方法 但同时仍然可以使用 I
  • 将枚举与 Code First 和 Entity Framework 5 结合使用

    只是想确认一个印象 似乎 EF5 Code First 中的枚举仅在与使用它们作为属性类型的类在同一命名空间中声明时才受支持 谁能证实这一点吗 在网上找不到任何与此相关的内容 之前修复的相关错误 4 3 Beta 1 发行说明说 错误修复G
  • 将datagridView保存到sql数据库中

    第一次将数据网格保存到数据库 感谢您的帮助 我这样填充dataGrid private void FillGrid1 frmEditovat frm2 new frmEditovat this DataTable DT null DataR
  • 在DBeaver中查看主键

    DBeaver中有没有快速查看表主键的方法 就像例如在 Eclipse 数据源资源管理器中 其中主键行标有 PK 和特殊符号 对于给定的表 右键单击表名 在数据库导航器中 gt 选择查看图表 This will open a window
  • Excel VBA 尝试使用 For 循环将“MAX”公式写入具有不同范围的单元格

    我试图让 VBA 将公式写入不同的单元格 该公式将找到由某些变量决定的范围的最大值 我的变量I and J是 数字 整数 这是我的代码 Sub AddMAX Dim I As Integer Dim J As Integer Dim L A
  • Java:长格式的 util.Date 对象

    如何返回具有长值的 Date 对象 就像是 JsonProperty time public Date getTimeInLong Date date super getTime return date getTime I want thi
  • 运行 Apache 时,Django 打开 SQLite3 db 文件时出错

    我收到这个错误 操作错误 无法打开数据库文件 到目前为止我尝试过的事情是在 settings py 中设置 dev db 文件的绝对路径 我尝试将 www data 添加到我的管理组 并将项目文件夹的组设置为 admin 并将该组设置为 w
  • 将字符串列表从 Python 传递到 Rust

    我已经学习 Rust 大约两周了 今天 我进入了它的 FFI 我使用 Python 来玩 Rust 使用 ctypes 和 libc 我传递了整数 字符串 甚至学会了传递整数列表 感谢这个精彩的答案 https stackoverflow
  • Sqlite 与基于文件的数据存储?

    假设我有一个类似的课程 如下所示 class User attr accessor name age def initialize name age name age name age end end 现在 将用户保存为单个文件中 User
  • 是否可以通过单击链接/按钮来运行 php artisan 命令

    所以正如问题所说 当用户单击网络浏览器中的链接时 有没有办法在后台运行 php artisan 命令 例如 我想在我的应用程序中创建一个用于迁移迁移文件的按钮 因此当单击此按钮时 a href migrate class btn btn p
  • android 绑定到 AccessibilityService

    我创建了一个android服务 它是AccessibilityService 根据我的活动 我想绑定到该服务 没有进程间通信 所以我尝试创建一个本地Binder仅返回服务的实现 如本例所示http developer android com
  • 在webapp中获取当前的svn版本

    在 java web 应用程序中显示 使用修订号的最佳方式是什么 我们只使用 ant 来构建我们的 war 存档 没有构建服务器之类的 我希望有某种 if ref 可以写入资源文件中 但这仅在提交相关文件时更新 我在全球范围内都需要它 你会