build.xml 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <?xml version="1.0"?>
  2. <project name="Modbus4J" basedir="." default="jar" xmlns:mvn="antlib:org.apache.maven.artifact.ant">
  3. <taskdef resource="net/sf/antcontrib/antlib.xml" classpath="lib-opt/ant-contrib-1.0b3.jar" />
  4. <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="antlib:org.apache.maven.artifact.ant" classpath="lib-opt/maven-ant-tasks-2.1.3.jar" />
  5. <mvn:pom file="pom.xml" id="maven-pom" />
  6. <mvn:dependencies filesetId="maven-deps" type="jar" pomRefId="maven-pom" />
  7. <mvn:dependencies filesetId="maven-deps-runtime" type="jar" pomRefId="maven-pom" useScope="runtime" />
  8. <property name="fullName" value="${maven-pom.artifactId}-${maven-pom.version}" />
  9. <path id="master-classpath">
  10. <fileset refid="maven-deps" />
  11. <fileset refid="maven-deps-runtime" />
  12. <fileset dir="lib">
  13. <include name="*.jar" />
  14. </fileset>
  15. <pathelement path="target/java" />
  16. </path>
  17. <target name="clean" description="Clean the target area">
  18. <delete dir="target/java" />
  19. </target>
  20. <target name="compile" description="Compile main source tree java files">
  21. <mkdir dir="target/java" />
  22. <available property="lib.exists" file="lib" type="dir" />
  23. <if>
  24. <isset property="lib.exists" />
  25. <then>
  26. </then>
  27. <else>
  28. <mkdir dir="lib" />
  29. </else>
  30. </if>
  31. <javac destdir="target/java"
  32. target="1.7"
  33. source="1.7"
  34. debug="true"
  35. debuglevel="lines,vars,source"
  36. deprecation="false"
  37. optimize="false"
  38. failonerror="true"
  39. includeantruntime="false">
  40. <src path="src" />
  41. <classpath refid="master-classpath" />
  42. </javac>
  43. </target>
  44. <target name="jar"
  45. depends="clean,compile"
  46. description="Create a jar file of the compiled classes">
  47. <delete file="target/release/${fullName}.jar" />
  48. <delete file="target/java/MANIFEST.MF" />
  49. <tstamp>
  50. <format property="TODAY" pattern="yyyy-MM-dd HH:mm:ss" />
  51. </tstamp>
  52. <manifest file="target/java/MANIFEST.MF">
  53. <attribute name="Built-By" value="${vendor}" />
  54. <attribute name="Build-Date" value="${TODAY}" />
  55. <attribute name="Version" value="${maven-pom.version}" />
  56. </manifest>
  57. <mkdir dir="target/java/lib" />
  58. <mkdir dir="target/java/META-INF" />
  59. <if>
  60. <istrue value="${includeSource}" />
  61. <then>
  62. <copy todir="target/java/src" preservelastmodified="true">
  63. <fileset dir="src">
  64. <include name="**/*.*" />
  65. </fileset>
  66. </copy>
  67. </then>
  68. </if>
  69. <available property="scripts.exists" file="scripts" type="dir" />
  70. <if>
  71. <isset property="scripts.exists" />
  72. <then>
  73. <copy todir="target/java/bin" preservelastmodified="true">
  74. <fileset dir="scripts">
  75. <include name="**/*" />
  76. </fileset>
  77. </copy>
  78. </then>
  79. </if>
  80. <jar destfile="target/release/${fullName}.jar"
  81. manifest="target/java/MANIFEST.MF">
  82. <fileset dir="target/java">
  83. <include name="**/*.class" />
  84. <include name="**/*.java" />
  85. <exclude name="MANIFEST.MF" />
  86. <include name="META-INF/*.*" />
  87. </fileset>
  88. </jar>
  89. </target>
  90. <target name="docs" description="Generate Java Doc">
  91. <mkdir dir="target/java/doc" />
  92. <javadoc sourcepath="src"
  93. destdir="target/java/doc"
  94. classpathref="master-classpath" >
  95. <doctitle><![CDATA[<h1>Modbus4j</h1>]]></doctitle>
  96. <bottom><![CDATA[<i>Copyright &#169; 2014 Infinite Automation Systems. All Rights Reserved.</i>]]></bottom>
  97. </javadoc>
  98. </target>
  99. <target name="jar-doc" depends="docs" description="Create a jar file of the javadocs">
  100. <delete file="target/release/${fullName}-doc.jar" />
  101. <jar destfile="target/release/${fullName}-doc.jar">
  102. <fileset dir="target/java/doc">
  103. <include name="**/*" />
  104. </fileset>
  105. </jar>
  106. </target>
  107. <target name="jar-src" description="Create a jar file of the sources">
  108. <delete file="target/release/${fullName}-src.jar" />
  109. <jar destfile="target/release/${fullName}-src.jar">
  110. <fileset dir="src">
  111. <include name="**/*.java" />
  112. </fileset>
  113. </jar>
  114. </target>
  115. <target name="maven-deploy"
  116. depends="jar,jar-src,jar-doc"
  117. description="Install library to Maven repository located at ${maven.local}">
  118. <if>
  119. <isset property="maven.local" />
  120. <then>
  121. <mvn:deploy file="target/release/${fullName}.jar">
  122. <remoterepository url="file://${maven.local}" />
  123. <pom refid="maven-pom" />
  124. <attach file="target/release/${fullName}-src.jar"
  125. type="jar"
  126. classifier="sources" />
  127. <attach file="target/release/${fullName}-doc.jar"
  128. type="jar"
  129. classifier="javadoc" />
  130. </mvn:deploy>
  131. </then>
  132. </if>
  133. <mvn:install file="target/release/${fullName}.jar">
  134. <pom refid="maven-pom" />
  135. <attach file="target/release/${fullName}-src.jar"
  136. type="jar"
  137. classifier="sources" />
  138. <attach file="target/release/${fullName}-doc.jar"
  139. type="jar"
  140. classifier="javadoc" />
  141. </mvn:install>
  142. </target>
  143. </project>