我想附加一个Netbeans项目的输出JAR文件名,其中包含一些版本号:类似于1.0,2.0b或甚至是Subversion版本号.不过,我似乎无法找到任何相关信息.我也不确定这是否是构建系统(Ant)的责任,或者IDE(Netbeans)是否可以委派该过程.这样做有一个集中,干净的方式吗?
IMO,这是构建系统的责任,而不是IDE的责任.让我以其他方式说:不要依赖你的IDE来构建你的项目,使用构建工具.使用IDE开发过程中是好的,但存在的IDE依赖建立一个项目是不是一件好事(如果你改变你的IDE明天,如果你想要建立在另一台机器/ OS项目而没有IDE,如果你想要什么如果你想自动化你的构建,如果有人想要构建那个项目并且没有那个IDE等等,那么如何在无头机器上构建你的项目.真的,这就是构建系统的用途.
现在,关于您的初始请求,有很多方法可以添加版本号.其中之一是使用Ant的BuildNumber任务:
这是一项可用于跟踪构建号的基本任务.
它首先会尝试从文件中读取版本号(默认情况下,build.number在当前目录下),然后将该属性设置build.number到在读值(或为0,如果没有这样的值).然后它会将数字增加1并将其写回文件.(如果您需要更好地控制属性名称或数字格式等内容,请参阅PropertyFile任务.)
像这样使用它:
<target name="jar" depends="compile">
<property name="version.num" value="1.00"/>
<buildnumber file="build.num"/>
<jar destfile="foo-${version.num}-b${build.number}.jar"
basedir="."
includes="**/*.class"
/>
</target>
Run Code Online (Sandbox Code Playgroud)
或者您确实可以添加subversion版本号.一个简单的方法是安装SVNAnt任务并使用状态任务:
<target name="revisionnumber">
<!-- get the svn revision number -->
<svn>
<status path="application.cfm" revisionProperty="svn.revision" />
</svn>
<echo>Sandbox Revision: ${svn.revision}</echo>
</target>
Run Code Online (Sandbox Code Playgroud)
最后,另一种选择是使用Maven而不是Ant,它具有cetnar指出的内置版本管理功能.
我不确定这是不是最好的方法,但是我们将它放在MANIFEST.MF文件中,如下所示:
Implementation-Version: 2.0b
Run Code Online (Sandbox Code Playgroud)
我们可以这样以编程方式获取此值:
String version_num = this.getClass().getPackage().getImplementationVersion();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2317 次 |
| 最近记录: |