2

私はMavenのバックグラウンドから来ています。私が取り組んでいるプロジェクトは Java ベースではありません。ただし、依存関係の管理にはスタンドアロンの Ivy を使用する必要があります。リポジトリ マネージャは Nexus です。

プロジェクトはいくつかの zip アーティファクトを生成し、スタンドアロン Ivy を介して Nexus にデプロイする必要があります。Maven 分類器の類似物が欲しいのですが、Ivy 用です。

これは私のivysettings.xmlです:

<ivysettings>
    <settings defaultResolver="nexus"/>
        <credentials host="localhost"
                     realm="Sonatype Nexus Repository Manager"
                     username="user"
                     passwd="pass"/>

    <property name="nexus-public"
              value="http://localhost:8081/nexus/content/groups/public"/>
    <property name="nexus-releases"
              value="http://localhost:8081/nexus/content/repositories/releases"/>
    <property name="nexus-snapshots"
              value="http://localhost:8081/nexus/content/repositories/snapshots"/>

    <resolvers>
        <ibiblio name="nexus"
                 m2compatible="true"
                 root="${nexus-public}"/>
        <ibiblio name="nexus-releases"
                 m2compatible="true"
                 root="${nexus-releases}"/>
        <ibiblio name="nexus-snapshots"
                 m2compatible="true"
                 root="${nexus-snapshots}"
                 checkmodified="true"
                 changingPattern="*-SNAPSHOT"/>
    </resolvers>
</ivysettings>

次のivy.xmlがあります。

<ivy-module version="2.0">
    <info organisation="kung.fu" module="ninja" revision="1.2.3"/>

    <publications>
        <artifact name="ninja" type="zip" ext="zip"/>
        <artifact name="ninja" type="win32" ext="zip"/>
        <artifact name="ninja" type="linux-x32" ext="zip"/>
        <artifact name="ninja" type="linux-x64" ext="zip"/>
    </publications>
</ivy-module>

次のようにNexusにデプロイしようとしています:

java -jar /path/to/ivy.jar
     -settings /path/to/.ivy/ivysettings.xml
     -ivy ivy.xml
     -publish nexus-releases
     -publishpattern "target/[artifact]-[revision](-[classifier]).[ext]"
     -revision 1.2.3
     -status released
     -overwrite

私は何を間違っていますか?

4

1 に答える 1

3

分類子フィールドの特別な追加属性が欠落していると思います。

さらに、Maven POM ファイルを生成してアップロードする必要があります。残念ながら、コマンドライン ツールはこれをサポートしていません...

見る:

アップデート

スタンドアロンの jar は、リポジトリへの公開をサポートするように設計されていますが、それがアイビー リポジトリであるという暗黙の了解があります....

これは、ivy ファイルがプッシュされる理由を説明しています。これは、ivy モジュールに必要なモジュール メタデータ ファイルです。一方、Maven はモジュール メタデータに POM ファイルを使用し、これを作成して Maven リポジトリに公開する必要があります。

これらすべてを ANT 内から行う場合、POM ファイルを自動的に生成するmakepomタスクがあり、ivy publishタスクには、ivy.xml ファイルのアップロードを抑制するために使用できる「publishivy」属性があります。

于 2013-01-30T21:24:19.203 に答える