Statistics
| Revision:

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

History | View | Annotate | Download (8.06 KB)

1
<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
        <target name="svn.checkout.all" 
13
                depends="svn.checkout.allprojects,eclipse.projects"
14
                description="Checkouts all projects defined in a parent module pom.xml">
15
                <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

    
23
                <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
        
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
                                <maven arg="-Dmaven.test.failure.ignore install" />
48
                                <maven arg="-P eclipse-project" />
49
                        </then>
50
                </if>
51
        </target>
52

    
53
        <target name="svn.update.all" 
54
                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
                        target="svn.checkout.allprojects" />
78
        </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
                        <param name="svn.project.path" value="${workspace_loc}" />
85
                        <param name="svn.project.url" value="${svn.module}" />
86
                </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
                        <param name="svn.project.path" value="${workspace_loc}" />
99
                        <param name="svn.project.url" value="${svn.module}" />
100
                </antcall>
101
        </target>
102

    
103
        <target name="svn.checkout">
104
                <echo>url: ${svn.project.url}</echo>
105
                <echo>SVNKit version: ${svnkit.version}</echo>
106
                <java classname="org.tmatesoft.svn.cli.SVN" dir="${svn.project.path}"
107
                        fork="true" failonerror="true">
108
                        <arg value="co" />
109
                        <arg value="--username" />
110
                        <arg value="${svn.username}" />
111
                        <arg value="--password" />
112
                        <arg value="${svn.password}" />
113
                        <arg value="${svn.project.url}" />
114
                        <classpath>
115
                                <pathelement location="${ant.libs.dir}/svnkit-${svnkit.version}.jar" />
116
                                <pathelement location="${ant.libs.dir}/svnkit-cli-${svnkit.version}.jar" />
117
                        </classpath>
118
                </java>
119
        </target>
120

    
121
        <target name="svn.update">
122
                <java classname="org.tmatesoft.svn.cli.SVN" dir="${svn.project.path}"
123
                        fork="true" failonerror="true">
124
                        <arg value="update" />
125
                        <arg value="${svn.module}" />
126
                        <classpath>
127
                                <pathelement location="${ant.libs.dir}/svnkit-${svnkit.version}.jar" />
128
                                <pathelement location="${ant.libs.dir}/svnkit-cli-${svnkit.version}.jar" />
129
                        </classpath>
130
                </java>
131
        </target>
132

    
133
        <!-- 
134
                Get subversion parameters using the AntForms utility:
135
                http://antforms.sourceforge.net/
136
        -->
137
        <target name="svn.getparams" unless="svn.repository.url">
138
                <!-- Default values -->
139
                <property name="create.eclipse.projects" value="true"/>
140
                <property name="svn.repository.url" value="https://svn.forge.osor.eu/svn/gvsig-desktop/branches/v2_0_0_prep"/>
141
                <!--
142
                        <property name="svn.username" value="guest"/> <property name="svn.password"
143
                        value="guest"/>
144
                -->
145
                <antform title="SVN parameters" image="${gvsiglogo}" resetMessage="Cancel"
146
                        previousTarget="cancel">
147
        
148
                        <textProperty label="gvSIG 2.0 subversion repository: " property="svn.repository.url"
149
                                password="false" editable="false" columns="38"/>
150

    
151
                        <label>
152
Note:
153
  Select the SVNKit version which relates to the SVN version of the other SVN 
154
  clients you are using, like the SVN command line client or Eclipse. In the
155
  case of Eclipse, you have to install a version of the Subclipse plugin which 
156
  provides the same SVNKit version as the one selected, or to install the 
157
  Subversive plugin and configure it to use the selected SVNKit version in the
158
  plugin preferences.
159
                                
160
  The relationship with the subversion version is :
161
          SVNKit 1.1.7 -> Subversion 1.4 -> ¿? 
162
          SVNKit 1.2.3 -> Subversion 1.5 -> Subclipse 1.4.*
163
          SVNKit 1.3.0 -> Subversion 1.6 -> Subclipse 1.6.*
164
                                
165
  In the case of Subversive, you can select the SVNKit version in the eclipse preferences:
166
        Team > SVN > SVN Connector
167
                        </label>
168

    
169
                        <selectionProperty label="SVNKit version to use: "
170
                                property="svnkit.version"
171
                                values="1.2.3;1.1.7;1.3.0"
172
                                separator=";" />
173

    
174
                        <label>
175
Note:
176
  Once the process has finished, import the projects into your eclipse workspace.
177
                        </label>
178
                </antform>
179
        </target>
180

    
181
        <target name="svn.get.project.path">
182
                <description>
183
                        Converts a project name to a project path in subversion.
184
                        Ej: libTools -> libraries/libTools
185
                </description>
186
                <propertyregex property="svn.module" input="${svn.module}"
187
                        regexp="^lib.*" replace="${svn.repository.url}/libraries/\0" casesensitive="false" 
188
                        override="true" />
189
                <propertyregex property="svn.module" input="${svn.module}"
190
                        regexp="^ext.*" replace="${svn.repository.url}/extensions/\0" casesensitive="false" 
191
                        override="true" />
192
                <propertyregex property="svn.module" input="${svn.module}"
193
                        regexp="^app.*" replace="${svn.repository.url}/applications/\0" casesensitive="false" 
194
                        override="true" />
195
                <propertyregex property="svn.module" input="${svn.module}"
196
                        regexp="^_fw.*" replace="${svn.repository.url}/frameworks/\0" casesensitive="false" 
197
                        override="true" />
198
                <propertyregex property="svn.module" input="${svn.module}"
199
                        regexp="^org\.gvsig\.symbology.*" replace="${svn.repository.url}/extensions/\0" 
200
                        casesensitive="false" override="true" />
201
                <propertyregex property="svn.module" input="${svn.module}"
202
                        regexp="^org\.gvsig\.mkmvnproject.*" replace="${svn.repository.url}/extensions/\0" 
203
                        casesensitive="false" override="true" />
204
                <propertyregex property="svn.module" input="${svn.module}"
205
                        regexp="^org\.gvsig\.installer.*" replace="${svn.repository.url}/extensions/\0" 
206
                        casesensitive="false" override="true" />
207
                <propertyregex property="svn.module" input="${svn.module}"
208
                        regexp="^org\.gvsig\.sextante\.app" replace="https://svn.forge.osor.eu/svn/gvsig-sextante/org.gvsig.sextante/trunk/org.gvsig.sextante.app" 
209
                        casesensitive="false" override="true" />
210
                <propertyregex property="svn.module" input="${svn.module}"
211
                        regexp="^gvsig-standard-installer" replace="${svn.repository.url}/build\/projects\/gvsig-standard/\0" 
212
                        casesensitive="false" override="true" />
213
        </target>
214
</project>