[root@localhost tmp]# ant Invalid implementation version between Ant core and Ant optional tasks. core : 1.8.1 in file:/root/.m2/repository/org/apache/ant/ant/1.8.1/ant-1.8.1.jar optional: null in file:/usr/local/ant/lib/ant.jar
まず原因(の予想)ですが、実行しているantのバージョンは1.9.4だけど、実行のために必要なjarファイルのバージョンは1.8.1だよ
と言って怒られているのが原因かなと思います
パスを見ると .m2 内の jar ファイルのバージョンが古いと言って怒られており、.m2 なので一件関係ないような気がするのですが
今回の場合(というか私の場合).m2 配下に存在する jar ファイルをすべて CLASS_PATH に追加しています
ant のソースコードを見たわけではないので詳しくはわからないですが、おそらく ant は CLASS_PATH 上に存在する ant用の jar ファイルを優先的に使うようになっており
その jar と実行しようとしている ant のバージョンが異なっているので実行に失敗していると思われます
(すいません、念押ししますがこの辺りはかなり推測が含まれます。。。)
解決する方法としては
- ant の1.8.1を使う
- .m2 (CLASS_PATH 上)に ant-1.9.4 の jar を配置する
で解決できるかと思います
そして、今回は下の方法で解決できましたので紹介します
1. jar をインストールするための maven プロジェクトを作成
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=com.sample.bbb -DartifactId=bbb2. pom.xml のdependencies タグ内にに以下を追記
<dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.9.4</version> </dependency>3. jar のダウンロード
mvn clean install4. .m2 上に jar がダウンロードされることを確認する
その後 新しく追加された jar を CLASS_PATH の設定に追加するために再ログインしました
(自分の場合は再ログインすることで CLASS_PATH が更新される仕組みを .bashrc に記載しているため)
といった感じで今回は解決できました
正直バットノウハウ過ぎますが、念のためメモしておきます
0 件のコメント:
コメントを投稿