オープンソース・ソフトウェアの開発とダウンロード

Subversion リポジトリの参照

Contents of /trunk/Pleiades/build.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 903 - (show annotations) (download)
Tue Sep 30 15:23:00 2014 UTC (9 years, 7 months ago) by cypher256
File MIME type: text/plain
File size: 19468 byte(s)


1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3 ###############################################################################
4 #
5 # Copyright (c) 2005- Shinji Kashihara. All rights reserved.
6 # This program and the accompanying materials except for /lib directory are
7 # made available under the terms of the Eclipse Public License v1.0 which
8 # accompanies this distribution, and is available at /epl-v10.html.
9 #
10 ###############################################################################
11 #
12 # Pleiades Ant ビルド・ファイル
13 #
14 ###############################################################################
15 -->
16 <project name="Pleiades" default="build.nightly">
17
18 <!--
19 ================================================================================
20 プロパティー定義
21 ================================================================================
22 -->
23
24 <!-- 現在の Eclipse バージョン -->
25 <property name="current.eclipse.version" value="4.4.1" />
26
27 <!-- DIST バージョン置換 -->
28 <property name="dist.eclipse.version" value="x.x" />
29 <script language="javascript"><![CDATA[
30 var version = project.getProperty("current.eclipse.version");
31 project.setProperty("dist.eclipse.version", version.replaceAll("..$", ""));
32 ]]></script>
33
34 <!-- コピー先ディレクトリー -->
35 <property name="bit" value="" />
36 <property name="dist.dir" location="/dev/dist/e${dist.eclipse.version}${bit}" />
37 <property name="tools.dir" value="/dev/tools" />
38 <property name="eclipse.dir" value="${tools.dir}/eclipse" />
39 <property name="this.eclipse.dir" location="${eclipse.dir}/${current.eclipse.version}/dropins/MergeDoc/eclipse" />
40
41 <!-- プロダクト定数定義 -->
42 <property name="project.name" value="pleiades" />
43 <property name="project.id" value="jp.sourceforge.mergedoc.${project.name}" />
44 <property name="agent.jar.name" value="${project.name}.jar" />
45
46 <!-- ディレクトリー・ファイル定義 -->
47 <property name="bin.dir" value="bin" />
48 <property name="build.dir" value="build" />
49 <property name="pleiades.zip.dir" value="${build.dir}/nightly" />
50 <property name="pleiades.zip.file" location="${pleiades.zip.dir}/${project.name}.zip" />
51 <property name="pleiades.src.zip.file" location="${pleiades.zip.dir}/${project.name}-src.zip" />
52
53 <!-- プロジェクト・クラスパス -->
54 <path id="project.classpath">
55 <pathelement location="bin" />
56 <pathelement location="bintest" />
57 <pathelement location="srctest" />
58 <pathelement location="conf" />
59 <fileset dir="lib">
60 <include name="**/*.jar" />
61 </fileset>
62 </path>
63
64 <!-- Windows の場合は true -->
65 <condition property="is_win">
66 <os family="windows" />
67 </condition>
68
69 <!--
70 ================================================================================
71 ビルド
72 ================================================================================
73 -->
74
75 <!-- 翻訳プロパティーの生成(各プロパティーのマージ) -->
76 <target name="generate" description="">
77 <java classname="jp.sourceforge.mergedoc.pleiades.generator.Generator" failonerror="true" fork="yes" maxmemory="256m">
78 <sysproperty key="file.encoding" value="UTF-8" />
79 <classpath refid="project.classpath" />
80 </java>
81 </target>
82
83 <!-- 翻訳プロパティーの生成、ビルド、この Eclipse に zip ファイルをコピー -->
84 <target name="generate.build.nightly" depends="generate, build.nightly" description="">
85 </target>
86
87 <!--
88 翻訳プロパティーの生成(各プロパティーのマージ)既存訳を再最適化
89 nls-ui-customized.properties を修正した場合は、実行が必要
90 -->
91 <target name="generate.clean" description="">
92 <java classname="jp.sourceforge.mergedoc.pleiades.generator.Generator" failonerror="true" fork="yes" maxmemory="256m">
93 <sysproperty key="file.encoding" value="UTF-8" />
94 <classpath refid="project.classpath" />
95 <arg value="-clean" />
96 </java>
97 </target>
98
99 <!-- ヘルプ翻訳プロパティーの生成、翻訳プロパティーの生成 -->
100 <!-- 再生成はもうしない。FIX する。
101 <target name="generate-clean-help" description="">
102 <java
103 classname="jp.sourceforge.mergedoc.pleiades.generator.nls.HelpExtractor"
104 failonerror="true"
105 fork="yes"
106 maxmemory="256m">
107 <classpath refid="project.classpath"/>
108 </java>
109 <antcall target="generate-clean"/>
110 </target>
111 -->
112
113 <!-- ビルド (SVN 管理) -->
114 <target name="build" depends="">
115
116 <!-- Agent jar ファイル作成 -->
117 <jar destfile="${agent.jar.name}">
118 <fileset dir="${bin.dir}">
119 <include name="**/${project.name}/**/*.class" />
120 </fileset>
121 <manifest>
122 <attribute name="Premain-Class" value="${project.id}.Pleiades" />
123 <attribute name="Boot-Class-Path" value="./${agent.jar.name} ./conf ./lib/javassist/javassist.jar ./lib/apache/commons-io.jar ./lib/apache/commons-lang.jar" />
124 </manifest>
125 </jar>
126
127 <!-- Agent jar を含んだリリース用作業フォルダー作成 -->
128 <copy tofile="META-INF/MANIFEST.MF" file="META-INF/MANIFEST.MF.template" overwrite="true" />
129 <copy todir="plugins/${project.id}">
130 <fileset dir="${basedir}">
131 <exclude name="debian/" />
132 <exclude name=".settings/*" />
133 <exclude name="about/" />
134 <exclude name="bin/" />
135 <exclude name="bintest/" />
136 <exclude name="nls/" />
137 <exclude name="report/" />
138 <exclude name="conf/props/additions/" />
139 <exclude name="conf/props/history/" />
140 <exclude name="conf/props/temp/" />
141 <exclude name="conf/props/nls-ui-customized/" />
142 <exclude name="conf/props/no-*.properties" />
143 <exclude name="conf/props/nls-*.properties" />
144 <exclude name="conf/props/temp-*.properties" />
145 <exclude name="conf/props/validation-help-*.properties" />
146 <exclude name="conf/props/.*" />
147 <exclude name="conf/splash*.*.png" />
148 <exclude name="lib/**/*-src.zip" />
149 <exclude name="lib/build/" />
150 <exclude name="META-INF/MANIFEST.MF.template" />
151 <exclude name="src/" />
152 <exclude name="srctest/" />
153 <exclude name="readme/" />
154 <exclude name="build/" />
155 <exclude name=".*" />
156 <exclude name="build.xml" />
157 <exclude name="eclipse.*" />
158 <exclude name="pleiades_*.zip" />
159 </fileset>
160 </copy>
161 <copy todir="plugins/${project.id}">
162 <fileset dir="${basedir}/about/plugins">
163 <include name="**/*" />
164 </fileset>
165 </copy>
166 <copy todir="features/${project.id}">
167 <fileset dir="${basedir}/about/features">
168 <include name="**/*" />
169 </fileset>
170 </copy>
171
172 <!-- Agent jar ファイルの削除 -->
173 <delete file="${agent.jar.name}" />
174
175 <!-- Pleiades バージョンを readme から取得 -->
176 <loadfile property="pleiades.version" srcFile="readme/readme_pleiades_changes.txt">
177 <filterchain>
178 <linecontainsregexp><regexp pattern="^\d+\.\d+\.\d+.+" /></linecontainsregexp>
179 <headfilter lines="1"/>
180 <striplinebreaks/>
181 <replaceregex pattern="\s.+" replace=""/>
182 </filterchain>
183 </loadfile>
184 <echo>pleiades.version = ${pleiades.version}</echo>
185
186 <!-- Pleiades バージョン日付を readme から取得し、ビルド・タイムスタンプ・ファイルを作成 -->
187 <loadfile property="date" srcFile="readme/readme_pleiades_changes.txt">
188 <filterchain>
189 <linecontainsregexp><regexp pattern="^\d+\.\d+\.\d+.+" /></linecontainsregexp>
190 <headfilter lines="1"/>
191 <striplinebreaks/>
192 <replaceregex pattern=".+\s(\d+)\.?(\w+?)\.?(\w+?)$" replace="\1\2\3"/>
193 </filterchain>
194 </loadfile>
195 <echo>date = ${date}</echo>
196 <touch file="pleiades-${pleiades.version}.I${date}" />
197
198 <!-- バージョンを設定 -->
199 <replace summary="true" file="plugins/${project.id}/META-INF/MANIFEST.MF"
200 token="@pleiades.version" value="${pleiades.version}" />
201 <replace summary="true" file="plugins/${project.id}/about.properties"
202 token="@pleiades.version" value="${pleiades.version}" />
203 <replace summary="true" file="plugins/${project.id}/plugin.xml"
204 token="@pleiades.version" value="${pleiades.version}" />
205 <replace summary="true" file="features/${project.id}/feature.xml"
206 token="@pleiades.version" value="${pleiades.version}" />
207
208 <!-- JAR 署名 -->
209 <jar destfile="plugins/${project.id}.jar" basedir="./plugins/${project.id}"
210 manifest="plugins/${project.id}/META-INF/MANIFEST.MF"/>
211 <jar destfile="features/${project.id}.jar" basedir="./features/${project.id}" />
212 <signjar keystore=".keystore" alias="MergeDoc" storepass="mergedoc">
213 <sysproperty key="file.encoding" value="UTF-8" />
214 <fileset dir=".">
215 <include name="*/${project.id}.jar" />
216 </fileset>
217 </signjar>
218 <unjar src="plugins/${project.id}.jar" dest="./plugins/${project.id}">
219 <patternset>
220 <include name="META-INF/*" />
221 </patternset>
222 </unjar>
223 <unjar src="features/${project.id}.jar" dest="./features/${project.id}">
224 <patternset>
225 <include name="META-INF/*" />
226 </patternset>
227 </unjar>
228
229 <!-- Pleiades zip ファイルの作成 -->
230 <mkdir dir="${pleiades.zip.dir}" />
231 <delete file="${pleiades.zip.file}" />
232 <zip destfile="${pleiades.zip.file}">
233 <fileset dir="${basedir}">
234 <include name="plugins/${project.id}/**" />
235 <include name="features/${project.id}/**" />
236 <include name="eclipse.*" />
237 <include name="readme/*" />
238 <include name="pleiades-*" />
239 </fileset>
240 </zip>
241 <delete dir="plugins" />
242 <delete dir="features" />
243
244 <!-- Pleiades zip ソース・ファイルの作成 -->
245 <delete file="${pleiades.src.zip.file}" />
246 <zip destfile="${pleiades.src.zip.file}">
247 <fileset dir="${basedir}">
248 <!-- コマンド・ラインからビルド可能とするため class を含めておく
249 <exclude name="bin/**/*"/>
250 -->
251 <exclude name="bintest/**/*" />
252 <exclude name="conf/props/history/" />
253 <exclude name="conf/props/temp/" />
254 <exclude name="conf/props/**/.*" />
255 <exclude name="nls/" />
256 <exclude name="report/" />
257 <exclude name="build/" />
258 <!-- コマンドでエラーになるため追加 -->
259 <exclude name="features/" />
260 <exclude name="plugins/" />
261 </fileset>
262 </zip>
263 <delete>
264 <fileset dir=".">
265 <include name="pleiades-*" />
266 </fileset>
267 </delete>
268
269 </target>
270
271 <!-- signjar で使用する keystore 作成 -->
272 <target name="keystore" if="is_win">
273 <exec dir="." executable="cmd.exe">
274 <arg line="/c .keystore.cmd" />
275 <redirector inputencoding="MS932" outputencoding="MS932" />
276 </exec>
277 </target>
278
279 <!-- リリース・ビルド (手動アップロードしてリリース一覧で管理) -->
280 <target name="build.release" depends="test.unit, build.integration" description="">
281 <copy tofile="../pleiades_${pleiades.version}.zip" file="${pleiades.zip.file}" overwrite="true" />
282 <copy tofile="../pleiades_${pleiades.version}-src.zip" file="${pleiades.src.zip.file}" overwrite="true" />
283 </target>
284
285 <!-- 統合ビルド (~change.txt 記載、SVN コミット) -->
286 <target name="build.integration" depends="test.unit, keystore, build.nightly" description="">
287 <copy todir="${build.dir}" file="${pleiades.zip.file}" overwrite="true" />
288 <copy todir="${build.dir}" file="${pleiades.src.zip.file}" overwrite="true" />
289 </target>
290
291 <!-- ナイトリー・ビルド - この Eclipse に zip ファイルをコピー -->
292 <target name="build.nightly" depends="build, test.unit" description="">
293 <copy todir="${this.eclipse.dir}" file="${pleiades.zip.file}" overwrite="true" />
294 </target>
295
296 <!--
297 ================================================================================
298 ビルド (コマンドライン用)
299 ================================================================================
300 -->
301
302 <!-- クリーン (コマンドライン用) -->
303 <target name="clean" depends="">
304
305 <delete dir="${bin.dir}" />
306 <mkdir dir="${bin.dir}" />
307
308 <delete dir="${build.dir}" />
309 <mkdir dir="${build.dir}" />
310
311 </target>
312
313 <!-- ビルド (コマンドライン用) -->
314 <target name="javac" depends="">
315
316 <mkdir dir="${bin.dir}" />
317 <javac srcdir="src" destdir="${bin.dir}" classpathref="project.classpath" encoding="UTF-8" source="1.5" target="1.5" debug="on" />
318
319 </target>
320
321 <!-- ビルド (コマンドライン用) -->
322 <target name="build.full" depends="clean, javac, build.integration">
323 </target>
324
325 <!--
326 ================================================================================
327 テスト
328 ================================================================================
329 -->
330
331 <!-- ユニット・テスト -->
332 <target name="test.unit" description="">
333
334 <mkdir dir="report" />
335
336 <junit printsummary="yes" haltonfailure="yes" fork="yes" maxmemory="256m" showoutput="no">
337 <formatter type="xml" />
338 <classpath refid="project.classpath" />
339 <batchtest fork="yes" todir="report">
340 <fileset dir="srctest">
341 <include name="jp/**/*Test.java" />
342 <exclude name="**/TestAll.java" />
343 </fileset>
344 </batchtest>
345 </junit>
346
347 </target>
348
349 <!-- Eclipse 実行テスト -->
350 <target name="test.4.x-64bit-generate" description="" depends="generate,build.nightly">
351 <antcall target="test.run.dropins">
352 <param name="test.target.dir" value="${eclipse.dir}/${current.eclipse.version}Test64bit" />
353 <param name="test.target.exe" value="eclipse.exe" />
354 </antcall>
355 </target>
356 <target name="test.4.x-64bit" description="" depends="build.nightly">
357 <antcall target="test.run.dropins">
358 <param name="test.target.dir" value="${eclipse.dir}/${current.eclipse.version}Test64bit" />
359 <param name="test.target.exe" value="eclipse.exe" />
360 </antcall>
361 </target>
362 <target name="test.4.x-32bit" description="" depends="build.nightly">
363 <antcall target="test.run.dropins">
364 <param name="test.target.dir" value="${eclipse.dir}/${current.eclipse.version}Test32bit" />
365 <param name="test.target.exe" value="eclipse.exe" />
366 </antcall>
367 </target>
368 <target name="test.3.x-64bit" description="" depends="build.nightly">
369 <antcall target="test.run.dropins">
370 <param name="test.target.dir" value="${eclipse.dir}/3.7.2Test64bit" />
371 <param name="test.target.exe" value="eclipse.exe" />
372 </antcall>
373 </target>
374 <target name="test.3.x-32bit" description="" depends="build.nightly">
375 <antcall target="test.run.dropins">
376 <param name="test.target.dir" value="${eclipse.dir}/3.7.2Test32bit" />
377 <param name="test.target.exe" value="eclipse.exe" />
378 </antcall>
379 </target>
380 <target name="test.adt" description="" depends="build.nightly">
381 <antcall target="test.run">
382 <param name="test.target.dir" value="${eclipse.dir}/adt/eclipse" />
383 <param name="test.target.exe" value="eclipse.exe" />
384 </antcall>
385 </target>
386 <target name="test.ultimate" description="" depends="build.nightly">
387 <antcall target="test.run.dropins">
388 <param name="test.target.dir" value="${dist.dir}/ultimate${bit}/eclipse" />
389 <param name="test.target.exe" value="eclipse.exe" />
390 </antcall>
391 </target>
392 <target name="test.platform" description="" depends="build.nightly">
393 <antcall target="test.run.dropins">
394 <param name="test.target.dir" value="${dist.dir}/platform${bit}/eclipse" />
395 <param name="test.target.exe" value="eclipse.exe" />
396 </antcall>
397 </target>
398 <target name="test.java-generate" description="" depends="generate,build.nightly">
399 <antcall target="test.run.dropins">
400 <param name="test.target.dir" value="${dist.dir}/java${bit}/eclipse" />
401 <param name="test.target.exe" value="eclipse.exe" />
402 </antcall>
403 </target>
404 <target name="test.java" description="" depends="build.nightly">
405 <antcall target="test.run.dropins">
406 <param name="test.target.dir" value="${dist.dir}/java${bit}/eclipse" />
407 <param name="test.target.exe" value="eclipse.exe" />
408 </antcall>
409 </target>
410 <target name="test.cpp" description="" depends="build.nightly">
411 <antcall target="test.run.dropins">
412 <param name="test.target.dir" value="${dist.dir}/cpp${bit}/eclipse" />
413 <param name="test.target.exe" value="eclipse.exe" />
414 </antcall>
415 </target>
416 <target name="test.php" description="" depends="build.nightly">
417 <antcall target="test.run.dropins">
418 <param name="test.target.dir" value="${dist.dir}/php${bit}/eclipse" />
419 <param name="test.target.exe" value="eclipse.exe" />
420 </antcall>
421 </target>
422 <target name="test.python" description="" depends="build.nightly">
423 <antcall target="test.run.dropins">
424 <param name="test.target.dir" value="${dist.dir}/python${bit}/eclipse" />
425 <param name="test.target.exe" value="eclipse.exe" />
426 </antcall>
427 </target>
428
429 <!-- Eclipse 実行テスト (全バージョン) -->
430 <target name="test.all.version" description="" depends="
431 build.nightly,
432 test.cpp,
433 test.java,
434 test.php,
435 test.platform,
436 test.ultimate
437 ">
438 </target>
439
440 <!-- ビルドして Eclipse 実行(テスト環境を一旦削除してからコピー) -->
441 <target name="test.run">
442
443 <delete includeemptydirs="true">
444 <fileset dir="${test.target.dir}">
445 <include name="plugins/${project.id}/" />
446 <include name="features/${project.id}/" />
447 <include name="configuration/${project.id}/" />
448 </fileset>
449 </delete>
450 <unzip src="${pleiades.zip.file}" dest="${test.target.dir}" />
451
452 <exec executable="${test.target.dir}/${test.target.exe}" dir="${test.target.dir}" spawn="true">
453 <arg line="-clean" />
454 </exec>
455
456 </target>
457
458 <!-- ビルドして Eclipse 実行(テスト環境を一旦削除してからコピー) -->
459 <target name="test.run.dropins">
460
461 <delete includeemptydirs="true">
462 <fileset dir="${test.target.dir}/dropins">
463 <include name="MergeDoc/eclipse/plugins/${project.id}/" />
464 <include name="MergeDoc/eclipse/features/${project.id}/" />
465 </fileset>
466 <fileset dir="${test.target.dir}">
467 <include name="configuration/${project.id}/" />
468 </fileset>
469 </delete>
470 <unzip src="${pleiades.zip.file}" dest="${test.target.dir}/dropins/MergeDoc/eclipse">
471 <patternset>
472 <exclude name="readme/" />
473 <exclude name="*.cmd" />
474 </patternset>
475 </unzip>
476 <copy todir="${test.target.dir}/readme">
477 <fileset dir="${basedir}/readme">
478 <include name="**/*" />
479 </fileset>
480 </copy>
481
482 <exec executable="${test.target.dir}/${test.target.exe}" dir="${test.target.dir}" spawn="true">
483 <arg line="-clean" />
484 </exec>
485
486 </target>
487
488 <!-- IDEA 実行 -->
489 <target name="test.idea" description="" depends="build.nightly">
490
491 <property name="app.dir" value="${tools.dir}/idea" />
492
493 <delete includeemptydirs="true">
494 <fileset dir="${app.dir}">
495 <include name="plugins/${project.id}/" />
496 <include name="bin/configuration/${project.id}/" />
497 </fileset>
498 </delete>
499
500 <unzip src="${pleiades.zip.file}" dest="${app.dir}">
501 <patternset>
502 <include name="plugins/" />
503 </patternset>
504 </unzip>
505
506 <exec executable="${app.dir}/bin/idea.exe" dir="${app.dir}" spawn="true" />
507
508 </target>
509
510 <!--
511 ================================================================================
512 ツール
513 ================================================================================
514 -->
515
516 <!--
517 nls フォルダーのバックアップ時の長すぎるパスを回避するために不要な
518 ファイルとディレクトリーを削除
519
520 必要なファイルは下記のみ
521 *.jar
522 *.properties
523 MANIFEST.MF
524 fragment.xml
525 -->
526 <target name="clean.nls.dir" description="">
527 <delete includeemptydirs="true">
528 <fileset dir="${basedir}/nls">
529 <exclude name="**/*.jar" />
530 <exclude name="**/*.properties" />
531 <exclude name="**/MANIFEST.MF" />
532 <exclude name="**/fragment.xml" />
533 </fileset>
534 </delete>
535 </target>
536
537 </project>

Properties

Name Value
svn:mime-type text/plain

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26