-
Notifications
You must be signed in to change notification settings - Fork 2
/
build-init.xml
58 lines (47 loc) · 2.25 KB
/
build-init.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:ivy="antlib:org.apache.ivy.ant">
<!-- Load our Ivy file and suck up all the properties -->
<target name="-init:loadivyfile" unless="task.executed.init:loadivyfile" if="ivyfile">
<property name="task.executed.init:loadivyfile" value="true"/>
<!-- Ensure artifacts are properly inserted in our Ivy file -->
<mkdir dir="${targetdir}"/>
<xslt in="${ivyfile}" out="${targetdir}/ivy.xml" style="${builddir}/artifacts.xslt"/>
<!-- Load up our Ivy file and resolve dependencies -->
<ivy:settings file="${builddir}/ivysettings.xml"/>
<ivy:resolve file="${targetdir}/ivy.xml"/>
<ivy:info file="${targetdir}/ivy.xml"/>
<!-- Cache our path for compilation -->
<ivy:cachepath pathid="ivy.classpath" type="bin" conf="*"/>
</target>
<!-- Fail nicely if the ivy file was not found -->
<target name="-init:checkivyfile" unless="ivyfile">
<fail message="Ivy file not found, create one!"/>
</target>
<!-- Initialize the build system -->
<target name="init"
depends="-init:checkivyfile,-init:loadivyfile"
unless="task.executed.init"
description="Initialize the build system">
<property name="task.executed.init" value="true"/>
<!-- Use some JavaScript magic to parse our version, prepare source dirs -->
<script language="javascript">
<![CDATA[
// Parse our "ivy.revision" property
var revision = String(project.getProperty('ivy.revision'));
var match = /^(\d+)\.(\d+)\.(\d+)$/gi.exec(revision);
if (match == null) throw 'Invalid revision in Ivy file: "' + revision + '"';
project.setProperty('ivy.revision.major', match[1]);
project.setProperty('ivy.revision.minor', match[2]);
project.setProperty('ivy.revision.build', match[3]);
]]>
</script>
<echo message="Organisation: ${ivy.organisation}"/>
<echo message="Module: ${ivy.module}"/>
<echo message="Revision: ${ivy.revision}"/>
</target>
<!-- Simple task to convert a .pom into a .ivy -->
<target name="pom2ivy" if="pom">
<get src="${pom}" dest="${targetdir}/pom.xml"/>
<ivy:convertpom pomFile="${targetdir}/pom.xml" ivyFile="${targetdir}/pom2ivy.xml" />
</target>
</project>