You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

build.xml 9.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project name="gitblit" default="main" basedir=".">
  3. <!-- Project Properties -->
  4. <property name="project.jar" value="gitblit.jar" />
  5. <property name="project.mainclass" value="com.gitblit.Launcher" />
  6. <property name="project.build.dir" value="${basedir}/build" />
  7. <loadproperties srcfile="${basedir}/build.properties" />
  8. <!-- Build Gitblit -->
  9. <target name="main" description="Compiles Gitblit from source to website">
  10. <!-- build date -->
  11. <tstamp>
  12. <format property="gb.buildDate" pattern="yyyy-MM-dd" />
  13. </tstamp>
  14. <!-- extract Gitblit version number from source code -->
  15. <loadfile property="gb.version" srcfile="${basedir}/src/com/gitblit/Constants.java">
  16. <filterchain>
  17. <linecontains>
  18. <contains value="public static final String VERSION = " />
  19. </linecontains>
  20. <striplinebreaks />
  21. <tokenfilter>
  22. <replacestring from="public static final String VERSION = &quot;" to="" />
  23. <replacestring from="&quot;;" to="" />
  24. <trim />
  25. </tokenfilter>
  26. </filterchain>
  27. </loadfile>
  28. <!-- extract JGit version number from source code -->
  29. <loadfile property="jgit.version" srcfile="${basedir}/src/com/gitblit/Constants.java">
  30. <filterchain>
  31. <linecontains>
  32. <contains value="public static final String JGIT_VERSION = " />
  33. </linecontains>
  34. <striplinebreaks />
  35. <tokenfilter>
  36. <replacestring from="public static final String JGIT_VERSION = &quot;" to="" />
  37. <replacestring from="&quot;;" to="" />
  38. <trim />
  39. </tokenfilter>
  40. </filterchain>
  41. </loadfile>
  42. <echo>Building Gitblit ${gb.version}</echo>
  43. <!-- copy required distribution files to project folder -->
  44. <copy todir="${basedir}" overwrite="false">
  45. <fileset dir="${basedir}/distrib">
  46. <include name="gitblit.properties" />
  47. <include name="users.properties" />
  48. </fileset>
  49. </copy>
  50. <!-- Compile the build tool and execute it.
  51. This downloads missing compile-time dependencies from Maven. -->
  52. <delete dir="${project.build.dir}" />
  53. <mkdir dir="${project.build.dir}" />
  54. <javac srcdir="${basedir}/src" destdir="${project.build.dir}">
  55. <include name="com/gitblit/Build.java" />
  56. <include name="com/gitblit/Constants.java" />
  57. <include name="com/gitblit/utils/StringUtils.java" />
  58. </javac>
  59. <java classpath="${project.build.dir}" classname="com.gitblit.Build" />
  60. <!-- Compile Project -->
  61. <path id="master-classpath">
  62. <fileset dir="${basedir}/ext">
  63. <include name="*.jar" />
  64. </fileset>
  65. </path>
  66. <javac destdir="${project.build.dir}" failonerror="false">
  67. <src path="${basedir}/src" />
  68. <classpath refid="master-classpath" />
  69. </javac>
  70. <copy todir="${project.build.dir}">
  71. <fileset dir="${basedir}/src" excludes="**/*.java,**/thumbs.db" />
  72. </copy>
  73. <!-- Build jar -->
  74. <delete file="${project.jar}" />
  75. <jar jarfile="${project.jar}">
  76. <fileset dir="${project.build.dir}">
  77. <include name="**/*" />
  78. </fileset>
  79. <manifest>
  80. <attribute name="Main-Class" value="${project.mainclass}" />
  81. </manifest>
  82. </jar>
  83. <!-- Build Site -->
  84. <delete dir="${basedir}/site" />
  85. <mkdir dir="${basedir}/site" />
  86. <copy todir="${basedir}/site">
  87. <!-- Copy selected Gitblit resources -->
  88. <fileset dir="${basedir}/src/com/gitblit/wicket/resources">
  89. <include name="background.png" />
  90. <include name="gitblit.css" />
  91. <include name="markdown.css" />
  92. <include name="gitblt_25.png" />
  93. <include name="gitblt-favicon.png" />
  94. <include name="lock_go_16x16.png" />
  95. <include name="lock_pull_16x16.png" />
  96. <include name="shield_16x16.png" />
  97. <include name="cold_16x16.png" />
  98. <include name="bug_16x16.png" />
  99. <include name="book_16x16.png" />
  100. <include name="blank.png" />
  101. </fileset>
  102. <!-- Copy Doc images -->
  103. <fileset dir="${basedir}/docs">
  104. <include name="*.png" />
  105. <include name="*.js" />
  106. </fileset>
  107. </copy>
  108. <!-- Copy Fancybox -->
  109. <mkdir dir="${basedir}/site/fancybox" />
  110. <copy todir="${basedir}/site/fancybox">
  111. <fileset dir="${basedir}/docs/fancybox">
  112. <exclude name="thumbs.db" />
  113. </fileset>
  114. </copy>
  115. <!-- Copy google-code-prettify -->
  116. <mkdir dir="${basedir}/src/com/gitblit/wicket/pages/prettify" />
  117. <copy todir="${basedir}/site/prettify">
  118. <fileset dir="${basedir}/src/com/gitblit/wicket/pages/prettify">
  119. <exclude name="thumbs.db" />
  120. </fileset>
  121. </copy>
  122. <!-- Generate thumbnails of screenshots -->
  123. <java classpath="${project.build.dir}" classname="com.gitblit.Thumbnailer">
  124. <classpath refid="master-classpath" />
  125. <arg value="--sourceFolder" />
  126. <arg value="${basedir}/docs/screenshots" />
  127. <arg value="--destinationFolder" />
  128. <arg value="${basedir}/site/thumbs" />
  129. <arg value="--maximumDimension" />
  130. <arg value="250" />
  131. </java>
  132. <!-- Copy screenshots -->
  133. <mkdir dir="${basedir}/site/screenshots" />
  134. <copy todir="${basedir}/site/screenshots">
  135. <fileset dir="${basedir}/docs/screenshots">
  136. <include name="*.png" />
  137. </fileset>
  138. </copy>
  139. <!-- Build site pages -->
  140. <java classpath="${project.build.dir}" classname="com.gitblit.BuildSite">
  141. <classpath refid="master-classpath" />
  142. <arg value="--sourceFolder" />
  143. <arg value="${basedir}/docs" />
  144. <arg value="--outputFolder" />
  145. <arg value="${basedir}/site" />
  146. <arg value="--pageHeader" />
  147. <arg value="${basedir}/docs/site_header.html" />
  148. <arg value="--pageFooter" />
  149. <arg value="${basedir}/docs/site_footer.html" />
  150. <arg value="--alias" />
  151. <arg value="index=overview" />
  152. <arg value="--alias" />
  153. <arg value="properties=gitblit.properties" />
  154. <arg value="--substitute" />
  155. <arg value="%VERSION%=${gb.version}" />
  156. <arg value="--substitute" />
  157. <arg value="%DISTRIBUTION%=${distribution.zipfile}" />
  158. <arg value="--substitute" />
  159. <arg value="%BUILDDATE%=${gb.buildDate}" />
  160. <arg value="--substitute" />
  161. <arg value="%JGIT%=${jgit.version}" />
  162. <arg value="--load" />
  163. <arg value="%PROPERTIES%=${basedir}/distrib/gitblit.properties" />
  164. </java>
  165. <!-- Delete the deploy folder -->
  166. <delete dir="${basedir}/deploy" />
  167. <!-- Create deployment folder structure -->
  168. <mkdir dir="${basedir}/deploy" />
  169. <copy todir="${basedir}/deploy" file="${project.jar}" />
  170. <copy todir="${basedir}/deploy">
  171. <fileset dir="${basedir}/distrib">
  172. <include name="**/*" />
  173. </fileset>
  174. </copy>
  175. <!-- Build Deployment Docs -->
  176. <mkdir dir="${basedir}/deploy/docs" />
  177. <copy todir="${basedir}/deploy/docs">
  178. <!-- Copy selected Gitblit resources -->
  179. <fileset dir="${basedir}/src/com/gitblit/wicket/resources">
  180. <include name="background.png" />
  181. <include name="gitblit.css" />
  182. <include name="markdown.css" />
  183. <include name="gitblt_25.png" />
  184. <include name="gitblt-favicon.png" />
  185. <include name="lock_go_16x16.png" />
  186. <include name="lock_pull_16x16.png" />
  187. <include name="shield_16x16.png" />
  188. <include name="cold_16x16.png" />
  189. <include name="bug_16x16.png" />
  190. <include name="book_16x16.png" />
  191. <include name="blank.png" />
  192. </fileset>
  193. <!-- Copy Doc images -->
  194. <fileset dir="${basedir}/docs">
  195. <include name="*.png" />
  196. </fileset>
  197. </copy>
  198. <!-- Copy google-code-prettify -->
  199. <mkdir dir="${basedir}/src/com/gitblit/wicket/pages/prettify" />
  200. <copy todir="${basedir}/deploy/docs/prettify">
  201. <fileset dir="${basedir}/src/com/gitblit/wicket/pages/prettify">
  202. <exclude name="thumbs.db" />
  203. </fileset>
  204. </copy>
  205. <!-- Build deployment doc pages -->
  206. <java classpath="${project.build.dir}" classname="com.gitblit.BuildSite">
  207. <classpath refid="master-classpath" />
  208. <arg value="--sourceFolder" />
  209. <arg value="${basedir}/docs" />
  210. <arg value="--outputFolder" />
  211. <arg value="${basedir}/deploy/docs" />
  212. <arg value="--pageHeader" />
  213. <arg value="${basedir}/docs/page_header.html" />
  214. <arg value="--pageFooter" />
  215. <arg value="${basedir}/docs/page_footer.html" />
  216. <arg value="--skip" />
  217. <arg value="screenshots" />
  218. <arg value="--skip" />
  219. <arg value="releases" />
  220. <arg value="--alias" />
  221. <arg value="index=overview" />
  222. <arg value="--alias" />
  223. <arg value="properties=gitblit.properties" />
  224. <arg value="--substitute" />
  225. <arg value="%VERSION%=${gb.version}" />
  226. <arg value="--substitute" />
  227. <arg value="%DISTRIBUTION%=${distribution.zipfile}" />
  228. <arg value="--substitute" />
  229. <arg value="%BUILDDATE%=${gb.buildDate}" />
  230. <arg value="--substitute" />
  231. <arg value="%JGIT%=${jgit.version}" />
  232. <arg value="--load" />
  233. <arg value="%PROPERTIES%=${basedir}/distrib/gitblit.properties" />
  234. </java>
  235. <!-- Create Zip deployment -->
  236. <property name="distribution.zipfile" value="gitblit-${gb.version}.zip" />
  237. <zip destfile="${distribution.zipfile}">
  238. <fileset dir="${basedir}/deploy">
  239. <include name="**/*" />
  240. </fileset>
  241. </zip>
  242. <!-- Delete the deploy folder -->
  243. <delete dir="${basedir}/deploy" />
  244. <!-- Cleanup builds -->
  245. <delete>
  246. <fileset dir="${basedir}">
  247. <include name="${project.jar}" />
  248. </fileset>
  249. </delete>
  250. <!-- Cleanup -->
  251. <delete dir="${project.build.dir}" />
  252. </target>
  253. <!-- Publish site to hosting service -->
  254. <!-- You must add ext/commons-net-1.4.0.jar to your ANT classpath. -->
  255. <target name="publishSite" description="Publish the Gitblit site to a webserver (requires ext/commons-net-1.4.0.jar)">
  256. <ftp server="${ftp.server}"
  257. userid="${ftp.user}"
  258. password="${ftp.password}"
  259. remotedir="${ftp.dir}"
  260. passive="true"
  261. verbose="yes">
  262. <fileset dir="${basedir}/site" />
  263. </ftp>
  264. </target>
  265. <!-- Publish distribution to github -->
  266. <target name="publishDistribution" description="Publish the Gitblit distribution to Github">
  267. <!-- TODO -->
  268. <!-- https://github.com/oyvindkinsey/GitHubUploadTask -->
  269. </target>
  270. </project>