2012-04-10 9 views
0

maven ant runプラグインを介して実行しようとしているantプロジェクトがあります。私はantを使ってビルドを実行することはできますが、ant runプラグインを使用している場合でも、antクラスへのインポートを含むソースをコンパイルしている間は例外になります。mavn ant runプラグインでjavacの実行中にAntクラスが選択されない

[javac] xxxx/ant/src/org/apache/hadoop/hive/ant/GetVersionPref.java:21: package org.apache.tools.ant does not exist 
[javac] import org.apache.tools.ant.AntClassLoader; 
[javac]       ^
[javac] xxxx/ant/src/org/apache/hadoop/hive/ant/GetVersionPref.java:22: package org.apache.tools.ant does not exist 
[javac] import org.apache.tools.ant.BuildException; 

ここに、ant buildファイルのスニペットを示します。

<property name="myclasspath" refid="classpath"/> 
<!-- Emit the property to the ant console --> 
<echo message="Classpath = ${myclasspath}"/> 

<javac 
encoding="${build.encoding}" 
srcdir="${src.dir}" 
includes="**/*.java" 
destdir="${build.classes}" 
debug="${javac.debug}" 
deprecation="${javac.deprecation}" 
includeantruntime="true"> 
    <compilerarg line="${javac.args} ${javac.args.warnings}" /> 
    <classpath refid="classpath"/> 
</javac> 

印刷されたクラスパスを(直接またはantを実行プラグイン経由で実行されている)のいずれかの場合でant jarファイルが含まれていないので、私はアリライブラリは暗黙のうちにある最初のケースのために推測しています何とかjavacクラスパスに含まれています。この問題を解決するための提案に感謝します。

+0

コマンドラインから実行しているAntのバージョンはどれですか? 'antrun'プラグイン(バージョン1.7)は[pom.xml](http://svn.apache.org/viewvc/maven/plugins/tags/maven-antrun-plugin-1.7/pom)ごとに1.8.2を使用します。 xml?revision = 1190689&view =マークアップ)。 – user944849

+0

私はant 1.7.1を使用しています。ant runプラグインのバージョンは1.6です。 – chamibuddhika

答えて

1

antrunプラグインのバージョン1.6は、pom.xmlあたりant-nodeps:1.8.1を使用します。その瓶を見ると、私はエラーメッセージに記載されているクラスを見ません。

release notes in the issue trackerによれば、ant-nodeps:1.8.1は、antrunプラグインバージョン1.7でant:1.8.2に置き換えられました。 (http://jira.codehaus.org/browse/MANTRUN-162を参照してください)

バージョン1.7に更新し、動作するかどうかを確認してください。

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.7</version> 
</plugin> 
+0

私はアリラン1.7で試しました。同じエラーが発生しています。 :(。 – chamibuddhika

+1

これは推測ですが、私は助けてくれると願っています。あなたのantスクリプト 'javac'タスクは' includeAntRuntime'を 'true'に設定しています。[javac](http:// Ant docsのant.apache.org/manual/Tasks/javac.html)タスクでは、「通常、これをfalseに設定してスクリプトの動作が実行環境に影響されないようにするのが最善です。」と書かれていますが、 Mavenを使用している場合、Antランタイムはありますか?Antスクリプトにクラスパスを明示的に作成すると便利です。AntやMavenからAntスクリプトがどのように実行されるかは関係ありません。 – user944849

+0

これは、あなたがコメントで述べたようにクラスパスに明示的にant 1.8.3 jarを含めることによって機能します。 – chamibuddhika

関連する問題