0

私はこのstackoverflowリンクをたどろうとしていました:

最初に、私はantでgreatthanを行う方法を探し始めましたが、すべてが私に問題を引き起こすいくつかの方法を見つけました.

  1. javascriptタスクを使用してそれを行う方法を見つけました: 2つのプロパティを数値と比較するにはどうすればよいですか?

しかし、次のエラー メッセージが表示されました: スクリプト エンジン マネージャーを読み込めません (org.apache.bsf.BSFManager または javax.script.ScriptEngineManager)

bsf jar を追加しようとしましたが、失敗しました。例を教えてください..?

  1. <bool>次のリンクで提案されている要素 の ant-contrib 追加プロパティを使用しようとしていました: http://ant-contrib.sourceforge.net/tasks/tasks/more_conditions.html

そして私はそうすることに失敗しました。例を教えてください..?

4

3 に答える 3

2

次の ANT デモは、追加のライブラリをインストールする必要なく動作します。

<project name="hello" default="demo">
    <target name="demo">
        <script language="javascript">
            var version = parseInt(project.getProperty('version'));
            project.setProperty('isGreater', version > 1);
        </script>

        <echo message="${isGreater}"/>
    </target>
</project>

ANT と Java のどのバージョンを使用していますか? 私の場合:

$ ant -version
Apache Ant(TM) version 1.8.2 compiled on December 3 2011

$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.5) (6b24-1.11.5-0ubuntu1~12.04.1)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
于 2012-11-14T21:38:56.557 に答える
1

受け取った最初のエラーメッセージを見てください。

Unable to load a script engine manager (org.apache.bsf.BSFManager or javax.script.ScriptEngineManager)

これは、Jarファイルが欠落していることを示しています。<script>タスクを見てください:

注:このタスクは、ApacheAntディストリビューションに含まれていない外部ライブラリーに依存します。詳細については、ライブラリの依存関係を参照してください。

Library Dependencyリンクをクリックすると、テーブルに移動します。スクリプトタスクという単語を検索します。スクリプトタスクが機能するために必要なオプションのjarは最大10個あります。必要なのはbsf.jarです。

Ant Contribタスクを使用するには、 Ant Contrib Jarfileが必要であり、タスクを使用してタスクにリンクする必要があり<taskdef>ます。方法は次のとおりです。

  • 最新バージョンのant-contrib.jarをダウンロードします。
  • プロジェクトantlib/ant-contribにというディレクトリを作成し、そのディレクトリにant-contrib.jarを配置します。

あなたの中でbuild.xmlあなたは上部近くで次のことをしたいです。これは、任意のタスクの外部で実行できます。

<taskdef resource="net/sf/antcontrib/antlib.xml">
   <classpath>
       <fileset dir="${basedir}/antlib/ant-contrib"/>
   </classpath>
</taskdef>

これで、条件を含むant-contribタスクを使用できるようになり<bool>ます。

于 2012-11-14T22:08:37.033 に答える