Come si installa antlib.xml per scala per far funzionare la formica?configure ant per scala
In questo momento ho riscontrato il seguente errore quando eseguo ant
in un file build.xml che contiene attività scala.
[taskdef] Could not load definitions from resource scala/tools/ant/antlib.xml. It could not be found.
/scalala/scalala-read-only/scalala/build.xml:36: Problem: failed to create task or type scalac
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.
ho unjarred il scala-2.8.1.final/lib/scala-compiler.jar
, ma non so dove mettere il contenuto.
Ecco il corrispondente frammento di codice formica dal build.xml:
<target name="compile" depends="">
<mkdir dir="${build.dir}"/>
<scalac srcdir="${src.dir}" destdir="${build.dir}"
classpathref="project.classpath" force="changed">
<!-- addparams="-Yclosure-elim -optimise" -->
<include name="**/*.scala"/>
</scalac>
</target>
risposta
Il seguente codice è importante avere nel file build.xml:
<!-- Define project CLASSPATH. -->
<path id="project.classpath">
<pathelement location="${build.dir}" />
<fileset dir="${env.SCALA_HOME}/lib/"> <include name="*.jar" /> </fileset>
<fileset dir="${lib.dir}"> <include name="*.jar" /> </fileset>
</path>
<!-- Define scala compiler, scaladoc, etc command -->
<taskdef resource="scala/tools/ant/antlib.xml">
<classpath>
<pathelement location="${env.SCALA_HOME}/lib/scala-compiler.jar" />
<pathelement location="${env.SCALA_HOME}/lib/scala-library.jar" />
</classpath>
</taskdef>
il mio problema era che la variabile $SCALA_HOME
ambiente (${env.SCALA_HOME}
) indicava il male posto (un livello troppo profondo: /usr/local/scala-2.8.1.final/bin/
anziché solo /usr/local/scala-2.8.1.final/
e pertanto non è stato possibile trovare la directory lib
.
Forse dovresti pubblicare lo snippet di codice della form pertinente. Forse non si dispone di un typedef per scalac nel build.xml – Raghuram