1

私のツタの依存関係:

<dependency org="googlecode.com" name="jslint4java" rev="2.0.1" e:suffix="-src">
  <artifact name="jslint4java" type="zip"/>
</dependency>

私のツタの設定:

<url name="googlecode">
  <artifact pattern="http://[module].[organization]/files/[artifact]-[revision][suffix].[ext]"/>
</url>

...

<module organisation="googlecode.com" resolver="googlecode"/>

依存関係を解決しようとすると、次のエラーが発生しました。

[ivy:retrieve] == 依存関係の解決

...#blog;working@...->googlecode.com#jslint4java;2.0.2

[default->*] [ivy:retrieve] を試しました

http://jslint4java.googlecode.com/files/jslint4java-2.0.2-dist.zip

[ivy:retrieve]クライアント エラー: 見つかりません

url=http://jslint4java.googlecode.com/files/jslint4java-2.0.2-dist.zip

[ivy:retrieve] googlecode: ivy ファイルもアーティファクトも見つかりません

googlecode.com#jslint4java;2.0.2 [ivy:retrieve] WARN: モジュールが見つかりません: googlecode.com#jslint4java;2.0.2 [ivy:retrieve] WARN: ====

googlecode: [ivy:retrieve] を試しました WARN: -- アーティファクト

googlecode.com#jslint4java;2.0.2!jslint4java.zip: [ivy:取得] 警告:

http://jslint4java.googlecode.com/files/jslint4java-2.0.2-dist.zip

最後の行のURLを使用してファイルをd/lしようとしましたwgetが、うまくいきました。

しかし、ivy がファイルの d/l に失敗した理由がわかりません。

4

2 に答える 2

1

そのため、-d フラグを指定して ant タスクを実行し、詳細情報を確認しました。結果は次のとおりです。

[ivy:resolve] HTTP response status: 404 url=http://jslint4java.googlecode.com/files/jslint4java-2.0.1-src.zip.sha1
[ivy:resolve] CLIENT ERROR: Not Found url=http://jslint4java.googlecode.com/files/jslint4java-2.0.1-src.zip.sha1
[ivy:resolve] HTTP response status: 404 url=http://jslint4java.googlecode.com/files/jslint4java-2.0.1-src.zip.md5
[ivy:resolve] CLIENT ERROR: Not Found url=http://jslint4java.googlecode.com/files/jslint4java-2.0.1-src.zip.md5

md5 が存在しないことに注意してください。リゾルバーのチェックサム オプションをオーバーライドする必要があります。

<url name="googlecode" checksums="sha1">

sha1のみを試しました(デフォルトはsha1、md5です)。sha1もダウンロードに失敗しましたが、機能しました。

その分野で実験してみてください。

于 2012-09-16T09:05:55.230 に答える
0

ivyファイルで構成をセットアップすることをお勧めします。

ビルドを実行した後、次のファイルが存在します。

|-- build.xml
|-- ivysettings.xml
|-- ivy.xml
`-- lib
    `-- jslint4java-2.0.1-src.zip

ivy.xml

<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
    <info organisation="com.myspotontheweb" module="demo"/>

    <configurations>
        <conf name="source"  description="source code distro"/>
    </configurations>

    <dependencies>
        <dependency org="googlecode.com" name="jslint4java" rev="2.0.1" e:suffix="src" conf="source->default">
            <artifact name="jslint4java" type="zip"/>
        </dependency>
    </dependencies>

</ivy-module>

ノート:

  • 「ソース」構成を追加しました。他の種類の依存関係と区別するための、私のivyプロジェクト内の論理グループ。
  • 依存関係の余分な「conf」属性に注意してください。リモートの「デフォルト」構成にマップされます。リモートモジュールにivyまたはPOMファイルがない限り、デフォルトが最も安全なオプションです。
  • 余分な属性「サフィックス」を修正しました。「-」文字を削除しました。技術的には大したことではありませんが、依存関係の宣言に含めないのが最善だと思います。

ivysettings.xml

<ivysettings>
  <settings defaultResolver="googlecode" />
  <resolvers>
    <url name="googlecode">
      <artifact pattern="http://[module].[organization]/files/[artifact]-[revision]-[suffix].[ext]"/>
    </url>
  </resolvers>
</ivysettings>

ノート:

build.xml

<project name="demo" default="retrieve" xmlns:ivy="antlib:org.apache.ivy.ant">

    <target name="retrieve" description="Use ivy to retrieve artifacts">
        <ivy:retrieve pattern="lib/[artifact]-[revision](-[suffix]).[ext]" conf="source"/>
    </target>

    <target name="clean" description="Cleanup build files">
        <delete dir="lib"/>
    </target>

    <target name="clean-all" depends="clean" description="Additionally purge ivy cache">
        <ivy:cleancache/>
    </target>

</project>

ノート:

  • 「サフィックス」属性が括弧で囲まれていることに注意してください。これはオプションの追加パラメーターであり、依存関係の一部ではない場合があります。
于 2012-09-16T14:53:30.393 に答える