Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / build / ant-tasks / subversion-tasks.xml @ 32650

History | View | Annotate | Download (6.76 KB)

1 29554 cordinyana
<project name="gvSIG-subversion-tasks" default="svn.checkout.all"
2
        xmlns:artifact="antlib:org.apache.maven.artifact.ant">
3
4
        <dirname property="gvSIG-subversion-tasks.basedir" file="${ant.file.gvSIG-subversion-tasks}" />
5
        <import file="${gvSIG-subversion-tasks.basedir}/ant-tasks-config.xml" />
6
7
        <description>
8
                Ant tasks and macros to interact with subversion
9
        </description>
10
11
        <!-- Subversion targets -->
12 31337 cordinyana
        <target name="svn.checkout.all"
13
                depends="svn.checkout.allprojects,eclipse.projects"
14 29554 cordinyana
                description="Checkouts all projects defined in a parent module pom.xml">
15 31337 cordinyana
                <echo>
16
Note:
17
  Once the process has finished, import the projects into your
18
  eclipse workspace.</echo>
19
        </target>
20
21
        <target name="svn.checkout.allprojects" depends="svn.getparams">
22 31307 cordinyana
23 29554 cordinyana
                <artifact:pom id="pom" file="pom.xml" />
24
                <for list="${pom.modules}" param="svn.module" delimiter=",[]" trim="true">
25
                        <sequential>
26
                                <var name="svn.isgroup" unset="true" />
27
                                <propertyregex property="svn.module" input="@{svn.module}"
28
                                        regexp="[./]*(.*)" replace="\1" casesensitive="false"
29
                                        override="true" />
30
                                <available file="${build.folder}/projects/${svn.module}"
31
                                        property="svn.isgroup" />
32
                                <antcall target="svn.checkout.group">
33
                                        <param name="svn.module" value="${svn.module}" />
34
                                </antcall>
35
                                <antcall target="svn.checkout.project">
36
                                        <param name="svn.module" value="${svn.module}" />
37
                                </antcall>
38
                        </sequential>
39
                </for>
40
        </target>
41 31307 cordinyana
42
        <target name="eclipse.projects" if="create.eclipse.projects">
43
                <!-- Create the eclipse project configuration for all downloaded projects -->
44
                <if>
45
                        <equals arg1="${create.eclipse.projects}" arg2="true" />
46
                        <then>
47 31349 cordinyana
                                <maven arg="-Dmaven.test.failure.ignore install" />
48 31307 cordinyana
                                <maven arg="-P eclipse-project" />
49
                        </then>
50
                </if>
51
        </target>
52 29554 cordinyana
53 32650 cordinyana
        <target name="svn.update.all" depends="svn.getparams"
54 29554 cordinyana
                description="Updates all projects defined in a parent module pom.xml">
55
                <artifact:pom id="pom" file="pom.xml" />
56
                <for list="${pom.modules}" param="svn.module" delimiter=",[]" trim="true">
57
                        <sequential>
58
                                <var name="svn.isgroup" unset="true" />
59
                                <propertyregex property="svn.module" input="@{svn.module}"
60
                                        regexp="[./]*(.*)" replace="\1" casesensitive="false"
61
                                        override="true" />
62
                                <available file="${build.folder}/projects/${svn.module}"
63
                                        property="svn.isgroup" />
64
                                <antcall target="svn.update.group">
65
                                        <param name="svn.module" value="${svn.module}" />
66
                                </antcall>
67
                                <antcall target="svn.update.project">
68
                                        <param name="svn.module" value="${svn.module}" />
69
                                </antcall>
70
                        </sequential>
71
                </for>
72
        </target>
73
74
        <target name="svn.checkout.group" if="svn.isgroup">
75
                <echo>group: ${svn.module}</echo>
76
                <ant dir="${build.folder}/projects/${svn.module}"
77 31337 cordinyana
                        target="svn.checkout.allprojects" />
78 29554 cordinyana
        </target>
79
80
        <target name="svn.checkout.project" unless="svn.isgroup"
81
                depends="svn.get.project.path">
82
                <echo>project: ${svn.module}</echo>
83
                <antcall target="svn.checkout">
84 29706 cordinyana
                        <param name="svn.project.path" value="${workspace_loc}" />
85 32624 cordinyana
                        <param name="svn.project.url" value="${svn.module.url}" />
86 29554 cordinyana
                </antcall>
87
        </target>
88
89
        <target name="svn.update.group" if="svn.isgroup">
90
                <echo>group: ${svn.module}</echo>
91
                <ant dir="${build.folder}/projects/${svn.module}" target="svn.update.all" />
92
        </target>
93
94
        <target name="svn.update.project" unless="svn.isgroup"
95
                depends="svn.get.project.path">
96
                <echo>project: ${svn.module}</echo>
97
                <antcall target="svn.update">
98 29706 cordinyana
                        <param name="svn.project.path" value="${workspace_loc}" />
99 32624 cordinyana
                        <param name="svn.project.url" value="${svn.module.url}" />
100 29554 cordinyana
                </antcall>
101
        </target>
102
103
        <target name="svn.checkout">
104
                <echo>url: ${svn.project.url}</echo>
105 30597 jjdelcerro
                <echo>SVNKit version: ${svnkit.version}</echo>
106 29554 cordinyana
                <java classname="org.tmatesoft.svn.cli.SVN" dir="${svn.project.path}"
107
                        fork="true" failonerror="true">
108 32648 cordinyana
                        <arg value="--non-interactive"/>
109 29554 cordinyana
                        <arg value="co" />
110
                        <arg value="--username" />
111
                        <arg value="${svn.username}" />
112
                        <arg value="--password" />
113
                        <arg value="${svn.password}" />
114
                        <arg value="${svn.project.url}" />
115
                        <classpath>
116 30597 jjdelcerro
                                <pathelement location="${ant.libs.dir}/svnkit-${svnkit.version}.jar" />
117
                                <pathelement location="${ant.libs.dir}/svnkit-cli-${svnkit.version}.jar" />
118 29554 cordinyana
                        </classpath>
119
                </java>
120
        </target>
121
122
        <target name="svn.update">
123 32650 cordinyana
                <echo>url: ${svn.project.url}</echo>
124
                <echo>SVNKit version: ${svnkit.version}</echo>
125 29554 cordinyana
                <java classname="org.tmatesoft.svn.cli.SVN" dir="${svn.project.path}"
126
                        fork="true" failonerror="true">
127 32648 cordinyana
                        <arg value="--non-interactive"/>
128 29554 cordinyana
                        <arg value="update" />
129
                        <arg value="${svn.module}" />
130
                        <classpath>
131 30597 jjdelcerro
                                <pathelement location="${ant.libs.dir}/svnkit-${svnkit.version}.jar" />
132
                                <pathelement location="${ant.libs.dir}/svnkit-cli-${svnkit.version}.jar" />
133 29554 cordinyana
                        </classpath>
134
                </java>
135
        </target>
136
137 31307 cordinyana
        <!--
138
                Get subversion parameters using the AntForms utility:
139
                http://antforms.sourceforge.net/
140
        -->
141 29706 cordinyana
        <target name="svn.getparams" unless="svn.repository.url">
142 31307 cordinyana
                <!-- Default values -->
143
                <property name="create.eclipse.projects" value="true"/>
144 32359 cordinyana
                <property name="svn.repository.url" value="https://svn.forge.osor.eu/svn/gvsig-desktop/branches/v2_0_0_prep"/>
145 29554 cordinyana
                <!--
146
                        <property name="svn.username" value="guest"/> <property name="svn.password"
147
                        value="guest"/>
148
                -->
149
                <antform title="SVN parameters" image="${gvsiglogo}" resetMessage="Cancel"
150
                        previousTarget="cancel">
151 32359 cordinyana
152 32362 cordinyana
                        <textProperty label="gvSIG 2.0 subversion repository: " property="svn.repository.url"
153
                                password="false" editable="false" columns="38"/>
154 29554 cordinyana
155 30634 cordinyana
                        <label>
156
Note:
157
  Select the SVNKit version which relates to the SVN version of the other SVN
158
  clients you are using, like the SVN command line client or Eclipse. In the
159
  case of Eclipse, you have to install a version of the Subclipse plugin which
160
  provides the same SVNKit version as the one selected, or to install the
161
  Subversive plugin and configure it to use the selected SVNKit version in the
162
  plugin preferences.
163
164
  The relationship with the subversion version is :
165
          SVNKit 1.1.7 -> Subversion 1.4 -> ¿?
166
          SVNKit 1.2.3 -> Subversion 1.5 -> Subclipse 1.4.*
167
          SVNKit 1.3.0 -> Subversion 1.6 -> Subclipse 1.6.*
168
169 31307 cordinyana
  In the case of Subversive, you can select the SVNKit version in the eclipse preferences:
170 30634 cordinyana
        Team > SVN > SVN Connector
171
                        </label>
172
173 30597 jjdelcerro
                        <selectionProperty label="SVNKit version to use: "
174
                                property="svnkit.version"
175
                                values="1.2.3;1.1.7;1.3.0"
176
                                separator=";" />
177
178 29707 cordinyana
                        <label>
179
Note:
180 30634 cordinyana
  Once the process has finished, import the projects into your eclipse workspace.
181
                        </label>
182 29554 cordinyana
                </antform>
183
        </target>
184
185
        <target name="svn.get.project.path">
186
                <description>
187
                        Converts a project name to a project path in subversion.
188
                        Ej: libTools -> libraries/libTools
189
                </description>
190 32624 cordinyana
                <property file="${gvSIG-subversion-tasks.basedir}/projects-svn-repository.properties"/>
191
                <propertycopy property="svn.module.url" from="${svn.module}"
192
                                          override="true" silent="true"/>
193 29554 cordinyana
        </target>
194
</project>