1

gradle を使用して、アーカイブ リポジトリからビルドを使用しています。jar の 1 つ ( javax.jms_1.1.0.200810061358.jar) の内容は次のとおりです。

about.html
about_files
LICENSE.txt
jms.jar
META-INF
MANIFEST.MF

私が必要とするjarは、実際にはこの中のjms.jarですjavax.jms_1.1.0.200810061358.jar

この jar を使用できる唯一の方法は、jms.jar をリポジトリから取り出しjavax.jms_1.1.0.200810081358.jarてファイル システムに保存し、次の方法で使用することです。

repositories { flatDir: my_dir_with_jms.jar_in_it}

Gradle リストの誰かが、Ivy パッケージャー リゾルバーの使用を提案しました。

このリンクを見て、非常に混乱しました。私は他のアイビーリゾルバーを次のように設定しています:

addIvyPattern 'http://archivaserver:8080/archiva/repository/osgi-internal/[organisation]/[module]/[revision]/ivy_[revision].xml'
   addArtifactPattern
"http://archivaserver:8080/archiva/repository/osgi-official/[organisation]/[organisation]/[module]_[revision](-[classifier]).[ext]"

これに対する良い解決策を知っている人はいますか?

4

1 に答える 1

3

依存関係内の依存関係を解決するには、ivyパッケージのリゾルバーを使用する必要があります。

Gradle内からパッケージリゾルバーを構成したことはありませんが、次のように機能すると思います(Webページを参照)

repositories {
    add(new org.apache.ivy.plugins.resolver.packager.PackagerResolver()) {
        name = 'local Ivy packagers'

        buildRoot = file("${gradle.gradleUserHomeDir}/packager/build")
        resourceCache = file("${gradle.gradleUserHomeDir}/packager/cache")

        addIvyPattern      "file:///${project.rootDir}/ivy/[organisation]/[module]/[revision]/ivy.xml"
        addArtifactPattern "file:///${project.rootDir}/ivy/[organisation]/[module]/[revision]/packager.xml"
    }
}

dependencies {
    compile group: 'org.myorg', name: 'jms', version: '1.1.0.200810061358'
}

リゾルバーは、宣言された依存関係のために次のファイルを必要とします。

ivy/org.myorg/jms/1.1.0.200810061358/ivy.xml
ivy/org.myorg/jms/1.1.0.200810061358/packager.xml

アイビー.xml

モジュールを記述し、この場合はどの成果物が公開されるかを宣言します。

<ivy-module version="2.0">
    <info organisation="org.myorg" module="jms" revision="1.1.0.200810061358" status="release"/>

    <publications>
        <artifact name="jms" type="jar"/>
    </publications>

</ivy-module>

packager.xml

含まれているアーカイブの場所と、jms.jar を抽出する方法について説明します。

<packager-module version="1.0">

    <resource dest="archive" url="http://archivaserver:8080/archiva/repository/??/javax.jms_1.1.0.200810061358.jar" sha1="????"/>

    <build>
        <move file="archive/jms.jar" tofile="artifacts/jars/jms.jar"/>
    </build>

</packager-module>

buildタグの下のコンテンツは、ANT スクリプトの生成に使用されます。詳細については、ivy ドキュメントの「パッケージ手順」セクションを参照してください。

于 2010-08-10T23:54:37.357 に答える