以前我的理解是,@version
标记的目的是向库用户显示特定文件最后更改的版本。例如,如果 liblibrary v1.7 有一个新版本,并且其开发人员在实际状态的源中维护 @version
标记(手动或使用自动化工具),那么人们可以查看源工件并查看该特定文件自先前版本 1.6 以来是否已更改。
但是这里有一段 javadoc 文档,其中指出每个源文件中的 @version
标记应该仅保存整个工件的当前发行版本。
来自javadoc - The Java API Documentation Generator :
This tag is intended to hold the current version number of the software that this code is part of
但我根本看不出这有什么用处。如果您可以在构建工具中(构建工件之前)或在工件名称中(构建工件之后)看到当前版本,为什么每个人都会在每个源文件中包含当前版本?
那么您能否准确指定 @version
标记中应包含的内容:该文件上次更改时的版本(因此源 artfiact 中的每个文件都可能有自己的 @version
标签),或者只是工件的版本(因此每个源文件都有相同的 @version
标签)?前一种方法实际上曾经被使用过吗?
最佳答案
根据我的经验,版本标记始终包含文件的当前版本。
由于可以在运行时检查注释,因此检查文件上的版本注释可能很有用/实用。一个例子是从网络位置更新文件(想想视频游戏更新)。
由于注释对程序/编译器比对程序员更直接有用,因此版本标记应始终包含当前版本。
但是,每个开发人员可能会以不同的方式使用这些版本标签,这取决于他们。在您提出的案例中,他们发现以非预期的方式使用版本标签可以在某种程度上帮助他们。
所以是的,您可以将任何您想要的内容放入版本标记中。它是否有用取决于您的程序。
至于你的最后一个问题,是的。每个开发人员的版本编号差异很大(我在公司/团体而不是个人的背景下使用术语“开发人员”)。一些开发人员为每个稳定版本使用单一版本号。其他人使用单独的文件版本号。
我更喜欢后者,因为它允许您查看某些文件更新或更改的频率。
当然这都是猜测和意见。
关于java - @version 标签是否应该表示该源文件所属的工件的版本,或者该文件上次更改时的版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31688744/