在Java Web应用程序和库中包含版本信息的最佳实践?

时间:2009-07-20 12:05:46

标签: java versioning seam

我正在开发一个使用Seam实现多个Java Web应用程序(和相关JAR文件)的项目。

在部署中包含版本信息的最佳做法是什么?我需要了解的是Web应用程序应该如何包含和发布它们的版本以及如何为JAR文件完成相同的操作。

由于

4 个答案:

答案 0 :(得分:4)

答案 1 :(得分:1)

在包含版本号时,您有几个选择:

  1. 将其添加到JAR的MANIFEST.INF
  2. 在文件名中包含JAR的版本。
  3. 两者都很常见。

答案 2 :(得分:0)

作为Maven用户,我关注Maven conventions并让Maven管理所有版本控制,因此我最终得到了包含以下形式名称的战争和罐子:

foo-core-1.0.0.jar
foo-ui-1.0.0.jar
foo-app-1.1.0.war
...

Maven还会将版本信息放入Manifest并将POM嵌入到META_INF / maven / [groupId] / [artifactId] /pom.xml中,以便您可以确定原始工件所依赖的内容。这对于实时服务器的手动验证非常方便。

答案 3 :(得分:0)

具有正式版本号的库通常将其嵌入文件名中。

对于构建信息,无论如何都应该有一个自动构建过程,它很可能使用ant。这很容易:

  • 对于jar文件,您可以在清单文件中设置实现属性。
  • 您可以创建位于类路径中的属性文件,其中包含您要传播的信息。通常你需要构建时间以及构建它的人。
  • 对于Web应用程序,您可以将其放在web.xml中的描述中。

您可以通过多种方式显示此信息:

  • 在部署环境中,Web应用程序的描述通常很容易看到。
  • 显示用于构建的组件的构建页面。
  • 在启动时将构建信息记录到servlet日志。

这里的基本问题是谁需要看到它?最终用户无法在日志中看到...

另外,不要低估准确保存的部署日志的价值!你不应该去查看消费者文件...