S-JIS[2011-08-31/2011-09-03] 変更履歴

Ant:scalac

Scalaのコンパイルを行うタスク。


準備

scalacはAnt標準には含まれていないので、Scalaのコンパイルライブラリーからタスクを定義する必要がある。
また、コンパイルの実行にはScalaのランタイムライブラリーが必要となる。

	<target name="init">
		<property name="scala-library.jar" value="${env.SCALA_HOME}/lib/scala-library.jar" />

		<taskdef resource="scala/tools/ant/antlib.xml">
			<classpath>
				<pathelement location="${env.SCALA_HOME}/lib/scala-compiler.jar" />
				<pathelement location="${scala-library.jar}" />
			</classpath>
		</taskdef>
	</target>
	<target name="build" depends="init">
		<scalac srcdir="${src.dir}" destdir="${build.dir}">
			<classpath>
				<pathelement location="${scala-library.jar}" />
				<pathelement location="${build.dir}" />
			</classpath>
		</scalac>
	</target>

属性

属性 説明 scalac相当 更新日
srcdir ソースファイルのディレクトリー。    
destdir コンパイル先のディレクトリー。 -d  
classpathref クラスパスの指定。この中に${scala-library.jar}も含める。    
deprecation trueにすると、使用された非推奨な式の詳細を表示する。 -deprecation 2011-09-03

ボディー部に入れられるタグ

タグ(使用例) 説明
<src path="../src" /> scalaファイルの存在しているディレクトリー。
<include name="**/*.scala" /> コンパイル対象ファイル。
<exclude name="**/*Test.scala"/> コンパイルから除外するファイル。
<classpath refid="classpath" /> クラスパスの指定。この中に${scala-library.jar}も含める。

Asakusa Frameworkのライブラリーを使いつつScalaのソースをコンパイルする例。
この例ではScalaのライブラリーはEclipseのScalaプラグインのものを使用している。

build.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project name="afwhs1scala" default="build" basedir=".">
	<property name="src.dir"   value="../src" />
	<property name="build.dir" value="../classes" />
	<property name="M2_REPO" location="C:/Documents and Settings/hishidama/.m2/repository" />
	<path id="asakusa.classpath">
		<pathelement location="${M2_REPO}/com/asakusafw/asakusa-runtime/0.2.1/asakusa-runtime-0.2.1.jar" />
		<pathelement location="${M2_REPO}/com/asakusafw/asakusa-thundergate-vocabulary/0.2.1/asakusa-thundergate-vocabulary-0.2.1.jar" />
		<pathelement location="${M2_REPO}/com/asakusafw/asakusa-dsl-vocabulary/0.2.1/asakusa-dsl-vocabulary-0.2.1.jar" />
	</path>
	<target name="init">
		<property name="scala-library.home"  location="C:\eclipse\configuration\org.eclipse.osgi\bundles\327\1\.cp" />
		<property name="scala-compiler.home" location="C:\eclipse\configuration\org.eclipse.osgi\bundles\326\1\.cp" />

		<property name="scala-library.jar" value="${scala-library.home}/lib/scala-library.jar" />
		<path id="build.classpath">
			<pathelement location="${scala-library.jar}" />
			<path refid="asakusa.classpath" />
			<pathelement location="${build.dir}" />
		</path>

		<taskdef resource="scala/tools/ant/antlib.xml">
			<classpath>
				<pathelement location="${scala-compiler.home}/lib/scala-compiler.jar" />
				<pathelement location="${scala-library.jar}" />
			</classpath>
		</taskdef>
	</target>
	<target name="build" depends="init">
		<scalac srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath">
			<include name="**/*.scala" />
		</scalac>
	</target>
</project>

Ant目次へ戻る / 技術メモへ戻る
メールの送信先:ひしだま