码迷,mamicode.com
首页 > 其他好文 > 详细

项目打包版本号维护

时间:2016-07-21 21:55:40      阅读:457      评论:0      收藏:0      [点我收藏+]

标签:

项目打包是持续集成最基本的一个环节,当前主流的是maven,还有比较老点的ant,还有很多其他的打包工具。

打包版本号都是通过一个buildnumber.properties文件维护,打包工具的插件自动维护这个文件。

技术分享
#Build Number for ANT. Do not edit!
#Thu Jul 21 20:09:18 CST 2016
name_project=>e-3pl
build.number=1002
groupId=eal
build.date=2016-07-21 20\:09\:17
artifactId=eal-3pl
buildnum.properties

一、maven打包维护版本号

1、使用maven-antrun-plugin插件

技术分享
<plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.8</version>
                <executions>
                    <execution>
                        <id>createVersion</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <target>
                                <property file="${basedir}/buildnum.properties" />
                                <propertyfile file="${basedir}/buildnum.properties">
                                    <entry key="build.date" type="date" value="now"
                                        pattern="yyyy-MM-dd HH:mm:ss" />
                                </propertyfile>
                                <copy todir="${project.build.directory}/dist/${build.number}">
                                    <fileset dir="${project.build.directory}">
                                        <include name="e-3pl.war" />
                                    </fileset>
                                </copy>
                                <copy file="${basedir}/buildnum.properties" todir="${project.build.directory}/dist" />
                                <buildnumber file="${basedir}/buildnum.properties" />
                            </target>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
View Code

 技术分享

 

二、使用ant打包

技术分享

ant的build.xml文件

技术分享
<?xml version="1.0" encoding="UTF-8" ?>
<!-- 定义一个工程,默认任务为warFile。 -->
<project name="yxw" default="number-1" basedir=".">
    <property name="project.build.directory" value="target1"></property>
    
    <!-- 定义属性,打成war包的名称。 -->
    <property name="warFileName" value="yxw.war"></property>
    
    <!-- 定义路径,编译java文件时用到的jar包。 -->
    <path id="project.lib">
        <fileset dir="${basedir}/WebRoot/WEB-INF/lib">
            <include name="**/*.jar"/>
        </fileset>
    </path>
    
    <!-- 定义任务,清空任务:清空原有的class文件,创建新的build路径。 -->
    <target name="clean">
        <delete dir="${basedir}/build" />
        <mkdir dir="${basedir}/build" />
        <delete dir="${basedir}/target1" />
        <mkdir dir="${basedir}/target1" />
    </target>
    
    <!-- 定义任务,编译java文件夹中的java文件,编译后的class文件放到创建的文件夹下。 -->
    <target name="compile" depends="clean">
        <javac fork="true" executable="/root/usr/local/cip_3.0/work/.jenkins/tools/hudson.model.JDK/jdk_1.7/bin/javac" srcdir="${basedir}/src" excludes="${basedir}/test/*.java" destdir="${basedir}/build" includeantruntime="false">
            <classpath refid="project.lib">
            </classpath>
        </javac>
    </target>
    
    <!-- 定义默认任务,将class文件集合成jar包。 -->
    <target name="warFile" depends="compile">
        <buildnumber file="${basedir}/buildnum.properties" />
        <echo message="${build.number}"/>
        <propertyfile file="${basedir}/buildnum.properties">
            <entry key="build.date" type="date" value="now"
            pattern="yyyyMMddHHmmss" />
        </propertyfile>
        <copy todir="${project.build.directory}/dist/${build.number}">
            <fileset dir="${project.build.directory}">
                <include name="yxw.war" />
            </fileset>
        </copy>
        <!--<copy file="${basedir}/buildnum.properties" todir="${project.build.directory}/dist" />-->
        
        
        
        <!-- 删除原有war包。 -->
        <delete dir="${basedir}/target1/dist" />
        <mkdir dir="${basedir}/target1/dist/${build.number}" />
        <!-- 建立新war包。 -->
        <war destfile="${basedir}/target1/dist/${build.number}/${warFileName}" webxml="${basedir}/WebRoot/WEB-INF/web.xml">
            <!-- 将非jar和非class文件拷贝到war包的对应路径下。 -->
            <fileset dir="${basedir}/WebRoot">
                <include name="**/**.*" />            
                <exclude name="**/*.jar"/>
                <exclude name="**/*.class"/>
            </fileset>            
            <!-- 将jar和class文件拷贝到war包的对应路径下。 -->
            <lib dir="${basedir}/WebRoot/WEB-INF/lib" >
                <exclude name="**/jsp-api.jar"/>
            </lib>
            <classes dir="${basedir}/build" />
            <!--<classes dir="${basedir}/WebRoot/WEB-INF/resources" />
            <classes dir="${basedir}/WebRoot/WEB-INF/struts" />-->
        </war>
        <copy file="${basedir}/buildnum.properties" todir="${project.build.directory}/dist" />
        
    </target>
    
    <target name="number-1" depends="warFile">
        <propertyfile file="${project.build.directory}/dist/buildnum.properties">
            <entry key="build.number" type="int" value="${build.number}-1"/>
        </propertyfile>
        <echo message="${build.number}"/>
    </target>
</project>
build.xml

 

项目打包版本号维护

标签:

原文地址:http://www.cnblogs.com/shuaiqing/p/5693043.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!