【Ant】【Eclipse】 Eclipse 内のAntを使用する

  プロパティ

`プロパティ名 `プロパティ値 備考
${basedir} project要素のbasedir属性で設定されているベースディレクトリの絶対パス  
${ant.project.name} 現在のプロジェクトの名前  
${ant.file} ビルドファイルの絶対パス  

  応用

 * 上記のプロパティとproperty/location(以下の関連記事を参照のこと)を使用して、
   Eclipseを使用する上でのパスを取得する
http://blogs.yahoo.co.jp/dk521123/33891540.html

 

  ■ workspaceの場所を取得するには

<property name="WORKSPACE" location="${ant.file}/../../" />

 

  ■ Tomcatのwebapps / Webアプリの場所を取得するには

http://blogs.yahoo.co.jp/dk521123/6899590.html
を参考に...

<!-- webapps -->
<property name="tomcat.webapps" location="${WORKSPACE}/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/" />

<!-- Webアプリ -->
<property name="tomcat.webapp.name" location="${tomcat.webapps}/${ant.project.name}" />

 

  サンプル

* Javaプロジェクト名が「SampleJava」の場合
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project basedir="." default="sample.path" name="SampleJava">
    <property name="WORKSPACE" location="${ant.file}/../../" />
    <property name="tomcat.webapps" location="${WORKSPACE}/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/" />
    <property name="tomcat.webapp.name" location="${tomcat.webapps}/${ant.project.name}" />
    <path id="SampleJava.classpath">
        <pathelement location="bin"/>
    </path>
    <target name="sample.path">
        <echo message="${ant.project.name}"/>
        <echo message="${ant.file}"/>
        <echo message="${basedir}"/>
        <echo message="${WORKSPACE}"/>
        <echo message="${tomcat.webapps}"/>
        <echo message="${tomcat.webapp.name}"/>
    </target>
</project>

  出力結果

Buildfile: C:\eclipse\workspace\SampleJava\build.xml
clien.logs:
     [echo] SampleJava
     [echo] C:\eclipse\workspace\SampleJava\build.xml
     [echo] C:\eclipse\workspace\SampleJava
     [echo] C:\eclipse\workspace
     [echo] C:\eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
     [echo] C:\eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\SampleJava
BUILD SUCCESSFUL
Total time: 346 milliseconds