以前我的理解是@version
标记的目的是向库用户显示特定文件在哪个版本中最后被更改。例如,如果liblibrary v1.7有一个新版本,它的开发人员在源代码中维护实际状态的@version
标记(手动或使用自动工具),那么可以查看源代码工件并查看该特定文件自以前的版本1.6以来是否发生了更改。
但是这里有一份javadoc的文档,它说每个源文件中的@version
标签应该只保存整个工件的当前发布版本。
From javadoc - The Java API Documentation Generator:
这个标签用来保存该代码所包含的软件的当前版本号
但我看不出这有什么用。如果您可以在构建工具中(在构建工件之前)或在工件的名称中(在构建工件之后)看到当前版本,为什么还要在每个源文件中都有当前版本呢?
那么您可以准确地指定@version
标记中的内容:文件上次更改时的版本(因此源工件中的每个文件都可能具有自己的@version
标记),或者只是工件的版本(因此每个源文件都具有相同的@version
标记)?前一种方法实际上被使用过吗?
根据我的经验,版本标签总是包含文件的当前版本。
由于注释可以在运行时检查,因此检查文件上的版本注释可能是有用的/实用的。例如,从网络位置更新文件(例如视频游戏更新)。
由于注释对程序/编译器比程序员更直接有用,所以版本标签应该始终包含当前版本。
然而,每个开发人员可能以不同的方式使用这些版本标记,这取决于他们。在您介绍的案例中,他们发现以一种意想不到的方式使用版本标记在某种程度上帮助了他们。
是的,你可以在版本标签里放任何你想放的东西。它是否有用取决于您的程序。
关于你最后一个问题,是的。版本编号因开发人员而异(我在公司/团队上下文中使用"开发人员"一词,而不是个人)。有些开发人员对每个稳定版本使用单个版本号。其他人使用单独的文件版本号。
我更喜欢后者,因为它可以让您看到某些文件更新或更改的频率。
当然这些都是猜测和观点。