私はすべてのチュートリアルとサンプルを読みましたが、ローカルIvyリポジトリにカスタムjarのセットを公開することはできません。
編集:基本的には、maven-install-pluginと同じ動作が必要です。
これは私の設定です。私は、特定のフォルダにjarファイルを生成するAntタスクを持っています。フォルダ名は固定ではなく、ファイルのプロパティとして渡されます。私はこのフォルダ内のすべてのjarファイルを取得し、ローカルIvyリポジトリにインストールして、次のステップで使用できるようにしたいと考えています。ここ
は、私がツタを呼び出すところから私のAntのです:公開:
ローカルApache Ivyリポジトリにカスタムjarを公開する方法
<project name="Install Ivy Dependencies" xmlns:ivy="antlib:org.apache.ivy.ant" basedir="." default="publish">
<loadproperties srcFile="path_to_folder.properties"/>
<property name="file_pattern" value="${path_to_folder}/[artifact].[ext]" />
<property name="pub_revision" value="1.0.0" />
<target name="resolve">
<ivy:configure file="ivysettings.xml" />
<ivy:resolve file="ivy.xml" />
</target>
<target name="retrieve-all" depends="resolve">
<ivy:retrieve pattern="${file_pattern}" conf="*" />
</target>
<target name="publish" depends="retrieve-all">
<ivy:publish resolver="local" organisation="myOrg" update="true" overwrite="true" pubrevision="${pub_revision}">
<artifacts pattern="${file_pattern}"/>
</ivy:publish>
</target>
</project>
ここに私のivysettings.xmlです:
<ivysettings>
<resolvers>
<filesystem name="local" local="true"/>
</resolvers>
</ivysettings>
そしてivy.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info organisation="myOrg" module="myModule" revision="1.0.0"/>
<publications>
<artifact name="my-custom-jar" ext="jar" type="jar"/>
<artifact name="my-custom-jar-source" ext="jar" type="source"/>
</publications>
</ivy-module>
私がantタスクを呼び出したときに表示されるエラーは、
です。 MYORG#MyModuleというの成果物を公開することは不可能 ; 1.0.0:java.lang.IllegalStateException:MYORG#MyModuleというを公開することは不可能で、地元の使用1.0.0私-カスタムjar.jar:!
私のivysettings.xmlにいくつかの小さなバグを修正した後、これを実行できました。とにかく私がしたいと思っていたアーティファクトを公開していませんでした。これはこう言っています:[ivy:publish]は私のカスタムjarを公開しました。jarから /my-custom-jar.jarに移動します。私が望むのは、Ivyが /my-custom-jar.jarからアーティファクトを取り出し、ローカルキャッシュ/リポジトリに公開することです.-Maven-install-pluginと同じように。 –
Boyan
@Boyan例示的なリゾルバ明らかに、場所を設定するには、アーティファクトパターンとアイビーパターンを変更する必要があります。回答にリンクを追加しました – cantSleepNow
@canSleepNow、私はあなたのコードが例であることを知っています。私の問題はアイビーが出版することを完全に理解していないことです。私はすでにIvyドキュメンテーションを読みました。送信したリンクですが、どこに配置すればよいのかまだ分かりません。ローカルリポジトリへのパスを指定する必要がありますか?これは、すべてのシステムで異なるため、意味をなさない。また、ローカルの成果物がどこから取得され、ローカルのリポジトリにインストールされるかを指定する必要がありますか?私のivy.xmlファイルに関しては静的で、生成しません。 – Boyan