--/--/--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2008/12/09

build.xml を sxml にしてみる

いかにして build.xml を書くのに xml を避けるかについて考えている。黙って xml 書けよという話なのだけど、書きたくないものは書きたくない。

じゃあ sxml にしてみたらどうなるだろうと、試してみた。以下はその結果。

感想としては、思ったよりも現実的で読みやすいし書くのも楽そうだなという印象。ant のラッパースクリプトでも作りゃ、悪くないかも。

元の build.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2
 3 <project name="proj" basedir="." default="test">
 4     
 5     <property name="src.d" value="src" />
 6     <property name="test.d" value="test" />
 7     <property name="bin.d" value="bin" />
 8     <property name="lib.d" value="lib" />
 9
10     <target name="build">
11         <javac srcdir="${src.d}"
12                destdir="${bin.d}" />
13     </target>
14
15     <target name="test-build" depends="build">
16         <javac srcdir="${test.d}"
17                destdir="${bin.d}"
18                classpath="${lib.d}/junit.jar" />
19     </target>
20
21     <target name="test" depends="test-build">
22         <junit>
23             <classpath>
24                 <pathelement location="${bin.d}" />
25             </classpath>
26             <test name="AllTests"
27                   fork="yes"
28                   haltonfailure="yes">
29                 <formatter type="plain" />
30             </test>
31         </junit>
32     </target>
33
34</project>

sxml 変換

 1 (*TOP*
 2   (*PI* xml "version=\"1.0\" encoding=\"utf-8\"")
 3   (project (|@| (name "proj")
 4                 (default "test")
 5                 (basedir "."))
 6     (property (|@| (value "src") (name "src.d")))
 7     (property (|@| (value "test") (name "test.d")))
 8     (property (|@| (value "bin") (name "bin.d")))
 9     (property (|@| (value "lib") (name "lib.d")))
10
11     (target (|@| (name "build"))
12       (javac (|@| (srcdir "${src.d}") (destdir "${bin.d}"))))
13     (target (|@| (name "test-build") (depends "build"))
14       (javac (|@| (srcdir "${test.d}")
15                   (destdir "${bin.d}")
16                   (classpath "${lib.d}/junit.jar"))))
17     (target (|@| (name "test") (depends "test-build"))
18       (junit
19         (classpath
20           (pathelement (|@| (location "${bin.d}"))))
21         (test (|@| (name "AllTests")
22                    (haltonfailure "yes")
23                    (fork "yes"))
24          (formatter(|@| (type "plain"))))))))

次は yaml にでも変換してみようかな。xyx なんていうxml と yaml の相互変換をやってくれるツールがあるらしい。

スポンサーサイト

comment

post




上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。