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 5.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <?xml version="1.0"?>
  2. <project name="vaadin-buildhelpers" basedir="." default="publish-local"
  3. xmlns:ivy="antlib:org.apache.ivy.ant">
  4. <description>
  5. Compiles build helpers used when building other
  6. modules.
  7. </description>
  8. <include file="../build.xml" as="vaadin" />
  9. <include file="../common.xml" as="common" />
  10. <property name="module.name" value="vaadin-buildhelpers" />
  11. <property name="module.symbolic" value="com.vaadin.buildhelpers" />
  12. <property name="result.dir" location="result" />
  13. <path id="classpath.compile.custom" />
  14. <property name="filtered.webcontent.dir" location="${result.dir}/WebContent" />
  15. <property name="release-notes-tickets-file" location="${result.dir}/release-notes-tickets.html" />
  16. <property name="release-notes-authors-file" location="${result.dir}/release-notes-authors.html" />
  17. <target name="jar" depends="filter.webcontent">
  18. <antcall target="common.compile" />
  19. <property name="result.jar"
  20. location="${result.dir}/lib/${module.name}-${vaadin.version}.jar" />
  21. <property name="classes" location="${result.dir}/classes" />
  22. <property name="src" location="${result.dir}/../src" />
  23. <jar destfile="${result.jar}" duplicate="fail" index="true">
  24. <fileset dir="${classes}" excludes="${classes.exclude}"
  25. erroronmissingdir="false" />
  26. <fileset dir="${filtered.webcontent.dir}/.."
  27. includes="WebContent/**" />
  28. </jar>
  29. </target>
  30. <target name="publish-local" depends="jar">
  31. <antcall target="common.publish-local" />
  32. </target>
  33. <target name="clean">
  34. <antcall target="common.clean" />
  35. </target>
  36. <target name="filter.webcontent"
  37. depends="fetch-release-notes-tickets,fetch-release-notes-authors">
  38. <!-- Running without build.release-notes will cause an error, which
  39. is ignored -->
  40. <loadfile property="release-notes-tickets" srcFile="${release-notes-tickets-file}"
  41. failonerror="false" />
  42. <loadfile property="release-notes-authors" srcFile="${release-notes-authors-file}"
  43. failonerror="false" />
  44. <delete dir="${filtered.webcontent.dir}" />
  45. <copy todir="${filtered.webcontent.dir}">
  46. <fileset dir="${vaadin.basedir}/WebContent">
  47. <include name="img/**" />
  48. </fileset>
  49. </copy>
  50. <copy todir="${filtered.webcontent.dir}">
  51. <fileset dir="${vaadin.basedir}/WebContent">
  52. <patternset>
  53. <include name="release-notes.html" />
  54. <include name="license.html" />
  55. <include name="licenses/**" />
  56. <include name="css/**" />
  57. </patternset>
  58. </fileset>
  59. <filterchain>
  60. <expandproperties />
  61. <replacetokens begintoken="@" endtoken="@">
  62. <token key="version" value="${vaadin.version}" />
  63. </replacetokens>
  64. <replacetokens begintoken="@" endtoken="@">
  65. <token key="version-minor"
  66. value="${vaadin.version.major}.${vaadin.version.minor}" />
  67. </replacetokens>
  68. <replacetokens begintoken="@" endtoken="@">
  69. <token key="builddate" value="${build.date}" />
  70. </replacetokens>
  71. <replacetokens begintoken="@" endtoken="@">
  72. <token key="release-notes-tickets" value="${release-notes-tickets}" />
  73. </replacetokens>
  74. <replacetokens begintoken="@" endtoken="@">
  75. <token key="release-notes-authors" value="${release-notes-authors}" />
  76. </replacetokens>
  77. </filterchain>
  78. </copy>
  79. </target>
  80. <target name="fetch-release-notes-tickets" if="build.release-notes">
  81. <mkdir dir="${filtered.webcontent.dir}" />
  82. <antcall target="exec-buildhelper">
  83. <param name="main.class"
  84. value="com.vaadin.buildhelpers.FetchReleaseNotesTickets" />
  85. <param name="output" location="${release-notes-tickets-file}" />
  86. </antcall>
  87. </target>
  88. <target name="fetch-release-notes-authors" if="build.release-notes">
  89. <copy file="src/com/vaadin/buildhelpers/authormap.properties"
  90. tofile="${result.dir}/classes/com/vaadin/buildhelpers/authormap.properties" />
  91. <mkdir dir="${filtered.webcontent.dir}" />
  92. <antcall target="exec-buildhelper">
  93. <param name="main.class"
  94. value="com.vaadin.buildhelpers.FetchReleaseNotesAuthors" />
  95. <param name="output" location="${release-notes-authors-file}" />
  96. </antcall>
  97. <delete
  98. file="${result.dir}/classes/com/vaadin/buildhelpers/authormap.properties" />
  99. </target>
  100. <target name="exec-buildhelper">
  101. <antcall target="common.compile" />
  102. <fail unless="main.class" message="No main class given in 'main.class'" />
  103. <fail unless="output" message="No output file given in 'output'" />
  104. <ivy:resolve log="download-only" conf="build" />
  105. <ivy:cachepath pathid="deps" />
  106. <java classname="${main.class}" output="${output}"
  107. failonerror="true" fork="yes">
  108. <classpath>
  109. <pathelement location="${result.dir}/classes" />
  110. </classpath>
  111. <classpath refid="deps" />
  112. <jvmarg value="-Dvaadin.version=${vaadin.version}" />
  113. </java>
  114. </target>
  115. <target name="checkstyle">
  116. <antcall target="common.checkstyle">
  117. <param name="cs.src" location="src" />
  118. </antcall>
  119. </target>
  120. <target name="test" depends="checkstyle">
  121. <!--<antcall target="common.test.run" /> -->
  122. <echo>WHAT? No JUnit tests for ${module.name}!</echo>
  123. </target>
  124. </project>