Refactored build.

This commit is contained in:
Christian P. MOMON 2016-09-21 13:53:45 +02:00
parent 588891a552
commit 7c608d8593
5 changed files with 65 additions and 79 deletions

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<project default="dist" name="jarbuild"> <project default="dist" name="Create Library Jar">
<!--ANT 1.7 is required --> <!--ANT 1.7 is required -->
<property name="buildjar.version" value="1.4" /> <property name="buildjar.version" value="1.5" />
<property file="build.properties" /> <property file="build.properties" />
<property name="build.dir" value="${basedir}/build" /> <property name="build.dir" value="${basedir}/build" />
<property name="build.src" value="${basedir}/src" /> <property name="build.src" value="${basedir}/src" />
@ -25,23 +25,31 @@
<pathelement path="${test.classes}" /> <pathelement path="${test.classes}" />
</path> </path>
<!-- ***** Help ***** --> <!-- ***** Help ***** -->
<target name="help" description="Display detailed usage information"> <target name="help" description="Display detailed usage information">
<echo>Type ant -p</echo> <echo>Type ant -p</echo>
</target> </target>
<!-- ***** Clear ***** -->
<target name="clear" description="Clean temporary directories before work">
<delete dir="${build.dir}" />
</target>
<!-- ***** Clean ***** --> <!-- ***** Clean ***** -->
<target name="clean" description="Clean temporary directories"> <target name="clean" description="Clean temporary directories afeter work">
<delete dir="${build.dir}" /> <delete dir="${build.dir}" />
</target> </target>
<!-- ***** Compile ***** --> <!-- ***** Compile ***** -->
<target name="compile" description="Compile main code"> <target name="compile" description="Compile main code">
<mkdir dir="${build.dir}/classes" /> <delete dir="${build.classes}" />
<mkdir dir="${build.classes}" />
<javac srcdir="${build.src}" destdir="${build.classes}" debug="${debug}" deprecation="on" includeantruntime="false"> <javac srcdir="${build.src}" destdir="${build.classes}" debug="${debug}" deprecation="on" includeantruntime="false">
<classpath refid="test.classpath.compile" /> <classpath refid="build.classpath" />
</javac> </javac>
<copy todir="${build.classes}">
<fileset dir="${build.src}" excludes="**/*.java" />
</copy>
</target> </target>
<!-- ***** Compile test ***** --> <!-- ***** Compile test ***** -->
@ -50,11 +58,13 @@
<javac srcdir="${test.src}" destdir="${test.classes}" debug="${debug}" deprecation="on" includeantruntime="false"> <javac srcdir="${test.src}" destdir="${test.classes}" debug="${debug}" deprecation="on" includeantruntime="false">
<classpath refid="test.classpath.compile" /> <classpath refid="test.classpath.compile" />
</javac> </javac>
<copy todir="${test.classes}">
<fileset dir="${test.src}" excludes="**/*.java" />
</copy>
</target> </target>
<!-- ***** Test ***** --> <!-- ***** Test ***** -->
<target name="test" description="Run unit tests" depends="clean,compile,compile-test"> <target name="test" description="Run unit tests" depends="clear,compile,compile-test,clean">
<mkdir dir="${build.dir}/test-reports" /> <mkdir dir="${build.dir}/test-reports" />
<junit printsummary="yes" haltonfailure="no"> <junit printsummary="yes" haltonfailure="no">
<classpath refid="test.classpath.run" /> <classpath refid="test.classpath.run" />
@ -77,25 +87,23 @@
</target> </target>
<!-- ***** Dist ***** --> <!-- ***** Dist ***** -->
<target name="dist" description="Build distribution" depends="clean,compile,javadoc"> <target name="dist" description="Build distribution" depends="clear,compile,javadoc">
<!-- -->
<buildnumber file="build.num" description="Id of the build" />
<!-- AUTOMATIC MANAGEMENT --> <!-- AUTOMATIC MANAGEMENT -->
<buildnumber file="build.num" description="Id of the build" />
<property name="dist.version" value="${product.revision.major}.${product.revision.minor}.${build.number}" /> <property name="dist.version" value="${product.revision.major}.${product.revision.minor}.${build.number}" />
<property name="dist.name" value="${product.name}-${dist.version}" /> <property name="dist.name" value="${product.name}-${dist.version}" />
<property name="dist.dir" value="${basedir}/dist/${dist.name}" /> <property name="dist.dir" value="${basedir}/dist/${dist.name}" />
<!-- --> <!-- -->
<mkdir dir="${dist.dir}" /> <copy file="LICENSE" todir="${dist.dir}/" overwrite="true" failonerror="false" />
<copy file="README" todir="${dist.dir}/" overwrite="true" failonerror="false" />
<!-- --> <copy file="README.md" todir="${dist.dir}/" overwrite="true" failonerror="false" />
<copy file="LICENSE" todir="${dist.dir}/" overwrite="true" />
<!-- Package main --> <!-- Package main -->
<property name="dist.jar" value="${dist.dir}/${dist.name}.jar" /> <property name="dist.jar" value="${dist.dir}/${dist.name}.jar" />
<tstamp> <tstamp>
<format property="dist.time" pattern="dd/MM/yyyy HH:mm:ss" />
<!-- TODAY --> <!-- TODAY -->
<format property="dist.time" pattern="dd/MM/yyyy HH:mm:ss" />
</tstamp> </tstamp>
<jar destfile="${dist.jar}"> <jar destfile="${dist.jar}">
<manifest> <manifest>
@ -103,7 +111,6 @@
<attribute name="Built-Date" value="${dist.time}" /> <attribute name="Built-Date" value="${dist.time}" />
</manifest> </manifest>
<fileset dir="${build.classes}" /> <fileset dir="${build.classes}" />
<zipfileset dir="${basedir}/" includes="LICENSE" />
</jar> </jar>
<!-- Package sources --> <!-- Package sources -->
@ -115,37 +122,39 @@
<!-- Package Javadoc --> <!-- Package Javadoc -->
<property name="dist.javadoc.zip" value="${dist.dir}/${dist.name}-javadoc.zip" /> <property name="dist.javadoc.zip" value="${dist.dir}/${dist.name}-javadoc.zip" />
<zip destfile="${dist.javadoc.zip}" update="true" preserve0permissions="true"> <zip destfile="${dist.javadoc.zip}" update="true">
<fileset dir="${build.javadoc}" /> <fileset dir="${build.javadoc}" />
<zipfileset dir="${basedir}/" includes="LICENSE" /> <zipfileset dir="${basedir}/" includes="LICENSE" />
</zip> </zip>
<!-- Package lib --> <!-- Zip package -->
<copy todir="${dist.dir}/lib" overwrite="true"> <!--
<fileset dir="lib" excludes="hamcrest-core*,junit*" /> <property name="dist.zip" value="${basedir}/dist/${dist.name}.zip" />
</copy> <zip destfile="${dist.zip}" update="true">
<fileset dir="${dist.dir}" />
<zipfileset filemode="755" dir="${dist.dir}/" includes="*.sh *.command" />
</zip>
-->
</target> </target>
<!-- ***** Dist ***** --> <!-- ***** Build and GIT ***** -->
<target name="buildandgit" depends="dist"> <target name="buildandgit" depends="dist,clean">
<!-- GIT actions--> <echo message="Commit build.num" />
<echo message="Commit build.num"/>
<exec executable="git" outputproperty="git.commit.out" failifexecutionfails="true"> <exec executable="git" outputproperty="git.commit.out" failifexecutionfails="true">
<arg line="commit -m 'Build ${dist.version}' build.num"/> <arg line="commit -m 'Build ${dist.version}' build.num" />
</exec> </exec>
<echo message="${git.commit.out}" /> <echo message="${git.commit.out}" />
<echo message="Tag"/> <echo message="Tag" />
<exec executable="git" outputproperty="git.tag.out" failifexecutionfails="true"> <exec executable="git" outputproperty="git.tag.out" failifexecutionfails="true">
<arg line="tag -a ${dist.version} -m 'Build ${dist.version}'"/> <arg line="tag -a ${dist.version} -m 'Build ${dist.version}'" />
</exec> </exec>
<echo message="${git.tag.out}" /> <echo message="${git.tag.out}" />
<echo message="Push"/> <echo message="Push" />
<exec executable="git" outputproperty="git.push.out" failifexecutionfails="true"> <exec executable="git" outputproperty="git.push.out" failifexecutionfails="true">
<arg line="push --follow-tags"/> <arg line="push --follow-tags" />
</exec> </exec>
<echo message="${git.push.out}" /> <echo message="${git.push.out}" />
</target> </target>
</project> </project>

View file

@ -1,3 +1,3 @@
#Build Number for ANT. Do not edit! #Build Number for ANT. Do not edit!
#Wed Feb 05 00:10:04 CET 2014 #Wed Sep 21 13:47:02 CEST 2016
build.number=2 build.number=0

View file

@ -1,13 +1,12 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="dist-top" name="Xidyn"> <project default="dist" name="Xidyn">
<!-- --> <!-- ***** Import ***** -->
<import file="buildjar.xml" /> <import file="build-libjar.xml" />
<!-- --> <!-- ***** Define demo properties ***** -->
<property name="demo.src" value="${basedir}/demo" /> <property name="demo.src" value="${basedir}/demo" />
<property name="demo.classes" value="${build.dir}/demo-classes" /> <property name="demo.classes" value="${build.dir}/demo-classes" />
<!-- -->
<path id="demo.classpath.compile"> <path id="demo.classpath.compile">
<path refid="build.classpath"/> <path refid="build.classpath"/>
<pathelement path="${build.classes}"/> <pathelement path="${build.classes}"/>
@ -16,6 +15,8 @@
<path id="demo.classpath.run"> <path id="demo.classpath.run">
<path refid="demo.classpath.compile"/> <path refid="demo.classpath.compile"/>
<pathelement path="${demo.classes}"/> <pathelement path="${demo.classes}"/>
<pathelement path="${build.classes}"/>
<pathelement path="${build.classpath}"/>
</path> </path>
<!-- ***** Compile demo ***** --> <!-- ***** Compile demo ***** -->
@ -26,24 +27,11 @@
</javac> </javac>
</target> </target>
<!-- ***** Demo ***** --> <!-- ***** Run demo ***** -->
<target name="demo" description="Run demo" depends="clean,compile,compile-demo"> <target name="demo" description="Run demo" depends="clear,compile,compile-demo">
<java classname="XidynDemo" maxmemory="20m" fork="true"> <java classname="XidynDemo" maxmemory="20m" fork="true">
<classpath refid="demo.classpath.run" /> <classpath refid="demo.classpath.run" />
</java> </java>
</target> <delete dir="${build.dir}" />
<!-- -->
<target name="dist-top" description="Build distribution" depends="dist,compile-demo">
<!-- Package demo -->
<property name="demo.jar" value="${dist.dir}/demo.jar" />
<jar update="no" jarfile="${demo.jar}">
<fileset dir="${build.classes}" />
<fileset dir="${demo.classes}" />
<fileset dir="resources" />
</jar>
<copy file="rundemo" todir="${dist.dir}/" overwrite="true" />
<chmod file="${dist.dir}/rundemo" perm="ugo+rx" />
</target> </target>
</project> </project>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<project default="buildandgit" name="xidyn"> <project default="buildandgit" name="xidyn">
<!-- --> <!-- -->
<import file="buildjar.xml" /> <import file="build.xml" />
</project> </project>

11
rundemo
View file

@ -1,11 +0,0 @@
$JAVA_HOME/bin/java -classpath \
lib/activation.jar:\
lib/log4j-1.2.17.jar:\
lib/slf4j-api-1.7.5.jar:\
lib/slf4j-log4j-1.2.5.jar:\
lib/mail.jar:\
servlet-api.jar:\
build/classes:\
build/demo-classes/:\
demo.jar\
XidynDemo