3

私は 1 つの jenkins を os x サーバー (Lion) にインストールしており、ant スクリプトを呼び出して 1 つのサンプル プロジェクトをコンパイルしたいと考えています。

インストールには「jenkins」という専用ユーザーが 1 人いて、ssh インスタンスから彼をログに記録すると、コンパイル タスク (ivy のタスクを使用) を次のように正常に実行できます。

jenkins>ant compile

ant が Web インターフェイスによって呼び出されると、次のエラーが発生して問題が発生します。

Problem: failed to create task or type antlib:org.apache.ivy.ant:resolve

原因: ant がライブラリから ivy の解決タスクを正しくロードしていません。正解は本当にわかりません。jenkinsは「jenkins」ユーザーとしてコマンドを実行すると確信しています。

編集:詳細情報

BUILD FAILED
/Users/Shared/Jenkins/Home/jobs/example-build/workspace/build.xml:19: Problem: failed to create task or type antlib:org.apache.ivy.ant:resolve
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.
No types or tasks have been defined in this namespace yet
This appears to be an antlib declaration. 
Action: Check that the implementing library exists in one of:

    -/usr/share/ant/lib
    -/Users/Shared/Jenkins/Home/.ant/lib
    -a directory added on the command line with the -lib argument

Total time: 0 seconds
Build step 'Invoke Ant' marked build as failure
Finished: FAILURE
4

2 に答える 2

3

Jenkins ジョブで使用される ANT インストールが ivy jar を取得できないようです。

オプション1

次のターゲットを ANT ビルドに追加し、それを 1 回呼び出して、ANT が認識する場所、つまり $HOME/.ant/lib に ivy jar をインストールします。

<target name="bootstrap" description="Install ivy">
    <mkdir dir="${user.home}/.ant/lib"/>
    <get src="https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&amp;g=org.apache.ivy&amp;a=ivy&amp;v=LATEST&amp;e=jar"
         dest="${user.home}/.ant/lib/ivy.jar"/>
</target>

ノート:

  • このターゲットは、Sonatype の Nexus リポジトリが提供する REST API を使用して、ivy の最新バージョンをダウンロードします。

オプション 2

ivy jar が次のディレクトリにある場合:

  • /usr/local/bin/ツタ

libパラメーターを指定して ANT を起動し、ANT プラグイン用に指定した別の場所に移動できます。

ant -lib /usr/local/bin/ivy clean build
于 2012-07-09T21:34:22.120 に答える
0

Ant タスクを実行するときは、クラスパスに ivy.jar があることを確認してください。Eclipse -> Run As -> Ant Build -> Edit configuration -> Classpath タブ。Eclipse には ANT ホームに ivy.jar がありますが、何らかの理由で呼び出されません。

于 2013-12-02T17:34:40.367 に答える