ApacheIVY-クイックガイド

Apache Ivyは、Apache Mavenが依存関係を管理するのと同じ方法で、ANTベースのプロジェクトの依存関係を管理するために使用される、非常に人気があり非常に強力な依存関係管理ツールです。

ApacheIvyはApacheANTベースであり、同じ設計原則に従い、Apache ANTのサブプロジェクトであり、ApacheANTコミュニティによって積極的に管理およびサポートされています。

特徴

以下は、ApacheIvyの重要な機能です。

  • ANT Based− Apache Ivyは、ANTベースのプロジェクトに依存関係管理機能を提供します。使い方もとても簡単です。

  • Dependency Reports − Apache Ivyは、依存関係グラフをhtmlおよびレポート形式で印刷するオプションを提供します。

  • Non-intrusive− Apache Ivyは、配布の一部として制限を課しません。ビルドファイルでさえ、ApacheIvyに依存していません。

  • Highly Flexible − Apache Ivyは多くのデフォルト構成を提供し、要件に従って非常に簡単に構成できます。

  • Extendible− ApacheIvyは簡単に拡張できます。独自のリポジトリ、競合解決、および最新の戦略を定義できます。

  • Performance− ApacheIvyはパフォーマンスを重視して構築されています。ダウンロード済みのライブラリのキャッシュを保持します。他のリポジトリを調べるよりも、最初にローカルリポジトリを調べて依存関係を解決します。

  • Transitive Dependencies − 1つのプロジェクトまたはライブラリが別のライブラリを必要とする可能性のある他のライブラリに依存している場合、ApacheIvyは推移的な依存関係を自動的に管理します。

  • Maven Repository− Apache Ivyは、Mavenリポジトリの規則と同様の規則に従います。Apache Ivyは、mavenグローバルリポジトリを使用して依存関係を解決できます。

  • Maven 2 POMs− ApacheIvyはMaven2 POMをモジュール記述子として読み取ることができ、ivyをモジュール記述子として設定できます。したがって、既存のプロジェクトをIVY管理プロジェクトに簡単に移行できます。

  • Publishing − Apache Ivyは、プロジェクトを公開するためのサポートを提供し、マルチプロジェクト環境のデプロイメントプロセスを簡素化します。

  • Free to Use − Apache Ivyはオープンソースであり、無料で使用できます。

  • Documentation − Apache Ivyには、学習できる非常に詳細なドキュメントとチュートリアルがあります。

Apache Ivyでは、唯一の要件として、マシンにJavaとANTをインストールする必要があります。

Apache Antは、オープンソースイニシアチブによって認定された本格的なオープンソースライセンスであるApache SoftwareLicenseの下で配布されます。

フルソースコード、クラスファイル、ドキュメントを含む最新のApache Antバージョンは、次のURLにあります。 http://ant.apache.org.

ApacheAntのインストール

コンピュータにJavaDevelopment Kit(JDK)をダウンロードしてインストールしていることを前提としています。ない場合は、指示に従ってくださいここに。

  • JAVA_HOME環境変数がJDKがインストールされているフォルダーに設定されていることを確認します。

  • からバイナリをダウンロードします https://ant.apache.org

  • zipファイルを便利な場所c:\ folderに解凍します。Winzip、winRAR、7-zipまたは同様のツールを使用します。

  • と呼ばれる新しい環境変数を作成します ANT_HOME この場合、Antインストールフォルダを指します c:\apache-ant-1.9.14-bin フォルダ。

  • ApacheAntバッチファイルへのパスをPATH環境変数に追加します。私たちの場合、これはc:\apache-ant-1.9.14-bin\bin フォルダ。

ApacheAntのインストールの確認

コンピューターにApacheAntが正常にインストールされたことを確認するには、コマンドプロンプトでantと入力します。

−のような出力が表示されるはずです。

C:\>ant -version
Apache Ant(TM) version 1.9.14 compiled on March 12 2019

上記の出力が表示されない場合は、インストール手順が正しく実行されていることを確認してください。

ApacheIvyのインストール

  • からバイナリをダウンロードします https://ant.apache.org/ivy

  • zipファイルを便利な場所c:\ folderに解凍します。Winzip、winRAR、7-zipまたは同様のツールを使用します。

  • ivy-2.5.0.jarをにコピーします c:\apache-ant-1.9.14-bin/lib フォルダ。

ApacheIvyのインストールの確認

コンピューターにApacheIvyが正常にインストールされたことを確認するには、フォルダーEに次のビルドファイルを作成します。> ivy。

<project name="test ivy installation" 
   default="test" xmlns:ivy="antlib:org.apache.ivy.ant">
   <target name="test" description="Test ivy installation">
      <ivy:settings />
   </target>
</project>

−のような出力が表示されるはずです。

C:\>ant
Buildfile: E:\ivy\build.xml
test:
BUILD SUCCESSFUL
Total time: 2 seconds

Eclipseのインストール

このチュートリアルでは、AntとEclipseIDEの統合についても説明します。したがって、Eclipseをまだインストールしていない場合は、Eclipseをダウンロードしてインストールしてください。

Eclipseをインストールするには-

  • www.eclipse.orgから最新のEclipseバイナリをダウンロードします

  • Eclipseバイナリを便利な場所(c:\ folderなど)に解凍します。

  • c:\ eclipse \ eclipse.exeからEclipseを実行します

Ivyの用語を理解するには、次の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="com.tutorialspoint" module="ivy-test" status="integration">
   </info>
   <dependencies>
      <dependency org="commons-lang" name="commons-lang" rev="2.6" />
   </dependencies>
</ivy-module>

アイビー用語

以下はアイビーエコシステムの重要な用語です。

  • Organisation−名前が示すように、プロジェクトまたはライブラリを作成する会社、個人の開発者、またはチームの名前を指します。たとえば、com.tutorialspointです。

  • Module−名前が示すように、再利用可能なユニットまたはモジュールを指します。通常、モジュールにはバージョンが添付されています。たとえば、commons-lang、ivy-testなどです。

  • Module Descriptor−モジュール記述子は、モジュールを説明するivy.xmlファイルを参照します。モジュール記述子には、識別子(組織、名前、ブランチ、バージョン)、公開されたアーティファクト、構成、依存関係が含まれます。

  • Artifact−アーティファクトは、単一のファイルを成果物と呼びます。たとえば、jarファイル。アーティファクトのタイプは、zip、gzなどです。Jar、Source Jar、Javadoc Jarは、モジュールのさまざまなアーティファクトです。

  • Type −タイプは、jar、war、src、docなどのアーティファクトカテゴリを識別します。

  • Artifact file name extension − .jar 、、 zip、.gzなどのアーティファクト拡張子。

  • Module Revision −モジュールの一意のリビジョン番号またはそのバージョン番号。

  • Status of Revision−改訂のステータスは、改訂の安定性を示します。以下はステータスの重要な値です-

    • integration −継続的な開発、ナイトリービルドなどを表します。

    • milestone −分布を表しますが、確定されていません。

    • release −メジャーバージョンのテスト済みおよび完成済みを表します。

  • Repository − Mavenリポジトリと同様に、リポジトリは、ivyがライブラリ、アーティファクト、モジュールなどを検索できる配布サイトを表します。リポジトリは、パブリック、プライベート、または共有にすることができます。

  • Ivy Settings− Apache IvyはMavenの原則に従い、多くのデフォルト構成が付属しています。デフォルト設定は、ivysettings.xmlファイルを定義することでオーバーライドできます。

Apache IvyはMavenの原則に従い、多くのデフォルト構成が付属しています。デフォルト設定は、ivysettings.xmlファイルを定義することでオーバーライドできます。

<ivysettings>
	<properties file="${ivy.settings.dir}/ivysettings-file.properties" /> <settings defaultCache="${cache.dir}" defaultResolver="ibiblio" checkUpToDate="false" />
	<resolvers>
		<ibiblio name="ibiblio" />
		<filesystem name="internal">
			<ivy pattern="${repository.dir}/[module]/ivy-[revision].xml" /> <artifact pattern="${repository.dir}/[module]/[artifact]-[revision].[ext]" />
		</filesystem>
	</resolvers>
	<modules>
		<module organisation="tutorialspoint" name=".*" resolver="internal" />
	</modules>
</ivysettings>

アイビー設定ファイルのタグ

以下はアイビー設定ファイルの重要なタグです。

  • property−ツタ変数を設定します。カーディナリティ:0..n

  • properties−プロパティファイルを使用してツタ変数を設定します。カーディナリティ:0..n

  • settings−ツタをデフォルト値で設定します。カーディナリティ:0..1

  • include−別の設定ファイルを含める。カーディナリティ:0..n

  • classpath−プラグインのロードに使用されるクラスパスに場所を追加します。カーディナリティ:0..n

  • typedef−ツタに新しいタイプを定義する。カーディナリティ:0..n

  • lock-strategies−ロック戦略を定義する。カーディナリティ:0..1

  • caches−リポジトリキャッシュマネージャを定義する。カーディナリティ:0..1

  • latest-strategies−最新の戦略を定義する。カーディナリティ:0..1

  • parsers−モジュール記述子パーサーを定義します。カーディナリティ:0..1

  • version-matchers−新しいバージョンマッチャーを定義します。カーディナリティ:0..1

  • triggers−ツタイベントのトリガーを登録します。カーディナリティ:0..1

  • namespaces−新しい名前空間を定義します。カーディナリティ:0..1

  • macrodef−新しいマクロリゾルバを定義します。カーディナリティ:0..n

  • resolvers−依存関係リゾルバーを定義します。カーディナリティ:0..1

  • conflict-managers−競合マネージャーを定義する。カーディナリティ:0..1

  • modules−モジュールと依存関係リゾルバー間のルールを定義する。カーディナリティ:0..1

  • outputters−利用可能なレポート出力のリストを定義します。カーディナリティ:0..1

  • statuses−利用可能なステータスのリストを定義します。カーディナリティ:0..1

IvyDEは、Apacheが提供するEclipseプラグインです。IvyDEをインストールするには、Eclipseを起動し、[ヘルプ]> [新しいソフトウェアのインストール]に移動します。[利用可能なソフトウェア]ウィンドウが表示されます。IvyDE更新サイトに入る http://www.apache.org/dist/ant/ivyde/updatesite/エンターキーを押します。以下のプラグインが表示されます。

[次へ]をクリックすると、次の画面が表示されます。

プラグインのインストール中にエラーが発生した場合は、プロセスを再起動してください。インストールが正常に完了すると、eclipeにプラグインが表示されます。

これで、EclipseとIvyを使用して依存関係の管理を行うことができます。

解決タスクは、ivy.xmlに記述されている依存関係を解決し、それらをダウンロードしてivyキャッシュに配置するために使用されます。

まず、JavaファイルTester.javaを作成しましょう。 E: > ivy > src > com > tutorialspoint antプロジェクトのソースフォルダとして機能するフォルダ。

Application.java

package com.tutorialspoint;
import org.apache.commons.lang.StringUtils;
public class Application {
   public static void main(String[] args) {
      String string = StringUtils.upperCase("Ivy Beginner Guide");
      System.out.println(string);
   }
}

上記のクラスは、apache commonslangライブラリを使用してそのクラスStringUtilsを使用しています。Ivyはこのライブラリをダウンロードする必要があるため、ivy.xmlの依存関係セクションで定義する必要があります。以下はで作成されたivy.xmlです E: > ivy フォルダ。

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="com.tutorialspoint"
      module="test"
      status="integration">
   </info>
   <dependencies>
      <dependency org="org.apache.commons" name="commons-lang3" rev="3.9"/>
   </dependencies>
</ivy-module>

以下は重要な用語です。

  • ivy-module −ツタのバージョン、名前空間などを識別するためのルート要素。

  • info −プロジェクトを一意のエンティティとして識別する要素。

    • organisation −組織の名前

    • module −モジュールの名前

    • status −リリース、統合、マイルストーンなどのステータス。

  • dependencies −以下の属性を持つ依存関係タグとしてプロジェクトの依存関係を含む要素。

    • org −依存関係の組織の名前

    • name −依存関係の名前。

    • rev −依存関係のバージョン。

build.xml

<project name="test" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
   <target name="resolve" description="resolve dependencies">
      <ivy:resolve />
   </target>
</project<

以下は重要な用語です。

  • project −プロジェクト名、ivyのデフォルトのタスク名前空間などを識別するためのルート要素。

  • target−新しいタスクとその説明を作成するためのターゲット要素。これにはツタの解決タスクが含まれています。antがプロジェクトをビルドすると、ivy解決タスクが実行され、ivyを使用して依存関係が解決されます。

プロジェクトの構築

すべてのファイルの準備ができたので。コンソールに移動するだけです。案内するE: > ivy フォルダを作成し、antコマンドを実行します。

E:\ivy > ant

Ivyが動作し、依存関係が解決されます。次の結果が表示されます。

Buildfile: E:\ivy\build.xml
resolve:
[ivy:resolve] :: Apache Ivy 2.5.0 - 20191020104435 :: https://ant.apache.org/ivy
/ ::
[ivy:resolve] :: loading settings :: url = jar:file:/E:/Apache/apache-ant-1.9.14
/lib/ivy-2.5.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:resolve] :: resolving dependencies :: com.tutorialspoint#test;working@Acer-
PC
[ivy:resolve]   confs: [default]
[ivy:resolve]   found commons-lang#commons-lang;2.6 in public
[ivy:resolve]   found junit#junit;3.8.1 in public
[ivy:resolve] :: resolution report :: resolve 375ms :: artifacts dl 79ms
      ---------------------------------------------------------------------
      |                  |            modules            ||   artifacts   |
      |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
      ---------------------------------------------------------------------
      |      default     |   2   |   2   |   0   |   0   ||   4   |   0   |
      ---------------------------------------------------------------------
[ivy:retrieve] :: retrieving :: com.tutorialspoint#test [sync]
[ivy:retrieve]  confs: [default]
[ivy:retrieve]  0 artifacts copied, 2 already retrieved (0kB/101ms)
BUILD SUCCESSFUL
Total time: 1 second
E:\ivy>

出力を解決する

以下は重要な用語です。

  • conf −構成。この場合、デフォルト構成を使用しています。

  • modules −モジュール、ダウンロードされたモジュールなどの総数を示します。

  • artifacts −アーティファクト、ダウンロードされたアーティファクトなどの総数を示します。

ダウンロードしたファイルは、ivyキャッシュのデフォルトの場所で確認できます。 ${ivy.default.ivy.user.dir} > .ivy2 > cacheフォルダ。また、$ {ivy.default.ivy.user.dir}は、デフォルトではユーザーホーム$ HOMEです。

インストールタスクは、モジュールとその依存関係をリゾルバーにインストールするために使用されます。パブリックアーティファクトをダウンロードしてプライベートリポジトリで使用する場合に使用します。デフォルトでは、ユーザーローカルリポジトリは彼/彼女のプライベートリポジトリであり、$ {ivy.default.ivy.user.dir} / localにあります。

IVY-タスクの解決の章の説明に従って、Tester.java、build.xml、およびivy.xmlを作成しましょう。

ivyインストールタスクを使用するようにbuild.xmlを更新します。

build.xml

<project name="test" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
   <target name="resolve" description="resolve dependencies">
      <ivy:resolve />
   </target>
   <target name="install" description="install dependencies">
      <ivy:install organisation="commons-lang" module="commons-lang" 
         revision="2.6" transitive="true" overwrite="false" 
         from="public" to="local" />
   </target>
</project>

以下は重要な用語です。

  • organisation −組織の名前。

  • module −プロジェクトのモジュール名。

  • revision −プロジェクトのバージョン。

  • from −リポジトリタイプから。

  • to −リポジトリタイプへ。

プロジェクトの構築

すべてのファイルの準備ができたので。コンソールに移動するだけです。案内するE: > ivy フォルダを作成し、antコマンドを実行します。

E:\ivy > ant install

Ivyが動作し、依存関係が解決されます。次の結果が表示されます。

E:\ivy > ant install
Buildfile: E:\ivy\build.xml
install:
[ivy:install] :: Apache Ivy 2.5.0 - 20191020104435 :: https://ant.apache.org/ivy
/ ::
[ivy:install] :: loading settings :: url = jar:file:/E:/Apache/apache-ant-1.9.14
/lib/ivy-2.5.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:install] :: installing commons-lang#commons-lang;2.6 ::
[ivy:install] :: resolving dependencies ::
[ivy:install]   found commons-lang#commons-lang;2.6 in public
[ivy:install]   found junit#junit;3.8.1 in public
[ivy:install] :: downloading artifacts to cache ::
[ivy:install] :: installing in local ::
[ivy:install]   published commons-lang to C:\Users\Acer\.ivy2\local\commons-lang
\commons-lang\2.6.part\sources\commons-lang.jar
[ivy:install]   published commons-lang to C:\Users\Acer\.ivy2\local\commons-lang
\commons-lang\2.6.part\jars\commons-lang.jar
[ivy:install]   published commons-lang to C:\Users\Acer\.ivy2\local\commons-lang
\commons-lang\2.6.part\javadocs\commons-lang.jar
[ivy:install]   published ivy to C:\Users\Acer\.ivy2\local\commons-lang\commons-
lang\2.6.part\ivys\ivy.xml
[ivy:install]   publish committed: moved C:\Users\Acer\.ivy2\local\commons-lang\
commons-lang\2.6.part
[ivy:install]           to C:\Users\Acer\.ivy2\local\commons-lang\commons-lang\2
.6
[ivy:install]   published junit to C:\Users\Acer\.ivy2\local\junit\junit\3.8.1.p
art\jars\junit.jar
[ivy:install]   published ivy to C:\Users\Acer\.ivy2\local\junit\junit\3.8.1.par
t\ivys\ivy.xml
[ivy:install]   publish committed: moved C:\Users\Acer\.ivy2\local\junit\junit\3
.8.1.part
[ivy:install]           to C:\Users\Acer\.ivy2\local\junit\junit\3.8.1
[ivy:install] :: install resolution report ::
[ivy:install] :: resolution report :: resolve 0ms :: artifacts dl 21ms
      ---------------------------------------------------------------------
      |                  |            modules            ||   artifacts   |
      |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
      ---------------------------------------------------------------------
      |      default     |   2   |   0   |   0   |   0   ||   4   |   0   |
      ---------------------------------------------------------------------
BUILD SUCCESSFUL
Total time: 43 seconds

ダウンロードしたファイルは、ivyキャッシュのデフォルトのローカルリポジトリの場所で確認できます ${ivy.default.ivy.user.dir} > .ivy2 > local ディレクトリ。

検索タスクは、プロジェクトワークスペース内の指定された場所への依存関係を解決するために使用されます。

IVY-タスクの解決の章の説明に従って、Tester.java、build.xml、およびivy.xmlを作成しましょう。

ツタの取得タスクを使用するようにbuild.xmlを更新します。

build.xml

<project name="test" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
   <target name="resolve" description="resolve dependencies">
      <ivy:resolve />
      <ivy:retrieve sync="true" type="jar" />
   </target>
</project>

以下は重要な用語です。

  • sync − sync trueは、libディレクトリが最新であり、余分なファイルが削除されていることを確認します。

  • type− typeは、jarなどの指定されたタイプのアーティファクトのみをコピーするようにivyに指示します。ソースjar、javadocjarは無視されます。ソースjarのタイプはsrcまたはsourceであり、javadocjarの場合はdocまたはバンドルです。

取得タスクは、デフォルトでプロジェクトのlibディレクトリに解決された依存関係をコピーし、pattern属性を使用して変更できます。

プロジェクトの構築

すべてのファイルの準備ができたので。コンソールに移動するだけです。案内するE: > ivy フォルダを作成し、antコマンドを実行します。

E:\ivy > ant

Ivyが動作し、依存関係が解決されます。次の結果が表示されます。

Buildfile: E:\ivy\build.xml
resolve:
[ivy:resolve] :: Apache Ivy 2.5.0 - 20191020104435 :: https://ant.apache.org/ivy
/ ::
[ivy:resolve] :: loading settings :: url = jar:file:/E:/Apache/apache-ant-1.9.14
/lib/ivy-2.5.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:resolve] :: resolving dependencies :: com.tutorialspoint#test;working@Acer-
PC
[ivy:resolve]   confs: [default]
[ivy:resolve]   found commons-lang#commons-lang;2.6 in public
[ivy:resolve]   found junit#junit;3.8.1 in public
[ivy:resolve] :: resolution report :: resolve 316ms :: artifacts dl 18ms
      ---------------------------------------------------------------------
      |                  |            modules            ||   artifacts   |
      |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
      ---------------------------------------------------------------------
      |      default     |   2   |   2   |   0   |   0   ||   4   |   0   |
      ---------------------------------------------------------------------
[ivy:retrieve] :: retrieving :: com.tutorialspoint#test [sync]
[ivy:retrieve]  confs: [default]
[ivy:retrieve]  0 artifacts copied, 2 already retrieved (0kB/2756ms)
BUILD SUCCESSFUL
Total time: 31 seconds

ダウンロードしたファイルは、projectlibディレクトリで確認できます。

cachepathタスクは、解決されたアーティファクトがキャッシュに存在するANTクラスパスを作成するために使用されます。ANTはJavaファイルをコンパイルするためにjarをクラスパスにする必要があるため、Ivycachepathはクラスパスを構築します。

IVY-タスクの解決の章の説明に従って、Tester.java、build.xml、およびivy.xmlを作成しましょう。

ツタの取得タスクを使用するようにbuild.xmlを更新します。

build.xml

<project name="test" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
   <target name="resolve" description="resolve dependencies">
      <ivy:resolve />
      <ivy:cachepath pathid="new.classpath" />
   </target>
   <target name="compile" depends="resolve" description="Compile">
      <mkdir dir="build/classes" />
      <javac srcdir="src" destdir="build/classes">
         <classpath refid="new.classpath" />
      </javac>
   </target>
</project>

以下は重要な用語です。

  • pathid −キャッシュされたjarが存在するクラスパスのID。

取得タスクは、デフォルトでプロジェクトのlibディレクトリに解決された依存関係をコピーし、pattern属性を使用して変更できます。

プロジェクトの構築

すべてのファイルの準備ができたので。コンソールに移動するだけです。案内するE: > ivy フォルダを作成し、antコマンドを実行します。

E:\ivy > ant compile

Ivyが動作し、依存関係が解決されます。次の結果が表示されます。

Buildfile: E:\ivy\build.xml
resolve:
[ivy:resolve] :: Apache Ivy 2.5.0 - 20191020104435 :: https://ant.apache.org/ivy
/ ::
[ivy:resolve] :: loading settings :: url = jar:file:/E:/Apache/apache-ant-1.9.14
/lib/ivy-2.5.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:resolve] :: resolving dependencies :: com.tutorialspoint#test;working@Acer-
PC
[ivy:resolve]   confs: [default]
[ivy:resolve]   found commons-lang#commons-lang;2.6 in public
[ivy:resolve]   found junit#junit;3.8.1 in public
[ivy:resolve] :: resolution report :: resolve 2314ms :: artifacts dl 15ms
      ---------------------------------------------------------------------
      |                  |            modules            ||   artifacts   |
      |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
      ---------------------------------------------------------------------
      |      default     |   2   |   2   |   0   |   0   ||   4   |   0   |
      ---------------------------------------------------------------------
compile:
   [javac] E:\ivy\build.xml:13: warning: 'includeantruntime' was not set, defau
lting to build.sysclasspath=last; set to false for repeatable builds
   [javac] Compiling 1 source file to E:\ivy\build\classes
BUILD SUCCESSFUL
Total time: 3 seconds

コンパイルされたクラスファイルは、プロジェクトビルドディレクトリで確認できます。

公開タスクは、現在のアーティファクトとその解決された記述子ファイルを上記のリポジトリに公開するために使用されます。

IVY-タスクの解決の章の説明に従って、Tester.java、build.xml、およびivy.xmlを作成しましょう。

ivy公開タスクを使用するようにbuild.xmlを更新します。最初にjarファイルを作成し、次にそれを公開します。

build.xml

<project name="test" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
   <property name = "build.dir" value = "build"/>
   <target name="resolve" description="resolve dependencies">
      <ivy:resolve />
   </target>
   <target name = "jar">
      <jar destfile = "${build.dir}/lib/application.jar"
         basedir = "${build.dir}/classes"> <manifest> <attribute name = "Main-Class" value = "com.tutorialspoint.Application"/> </manifest> </jar> </target> <target name="publish" depends="jar"> <ivy:resolve /> <ivy:publish resolver="local" pubrevision="1.0" overwrite="true"> <artifacts pattern="${build.dir}/lib/[artifact].[ext]" />
      </ivy:publish>   
   </target>
</project>

以下は重要な用語です。

  • resolver −公開に使用されるリゾルバ。

  • pattern −アーティファクトを見つけるためのパターン。

ここで、公開タスクは最初にjarをビルドし、次に依存関係を解決し、情報を設定してから、アーティファクトをローカルリポジトリに公開します。

プロジェクトの構築

すべてのファイルの準備ができたので。コンソールに移動するだけです。案内するE: > ivy フォルダを作成し、antコマンドを実行します。

E:\ivy > ant publish

Ivyが動作し、依存関係が解決されます。次の結果が表示されます。

E:\ivy > ant publish
Buildfile: E:\ivy\build.xml
jar:
publish:
[ivy:resolve] :: Apache Ivy 2.5.0 - 20191020104435 :: https://ant.apache.org/ivy
/ ::
[ivy:resolve] :: loading settings :: url = jar:file:/E:/Apache/apache-ant-1.9.14
/lib/ivy-2.5.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:resolve] :: resolving dependencies :: com.tutorialspoint#test;1.0.0
[ivy:resolve]   confs: [default]
[ivy:resolve]   found commons-lang#commons-lang;2.6 in public
[ivy:resolve]   found junit#junit;3.8.1 in public
[ivy:resolve] :: resolution report :: resolve 121ms :: artifacts dl 15ms
      ---------------------------------------------------------------------
      |                  |            modules            ||   artifacts   |
      |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
      ---------------------------------------------------------------------
      |      default     |   2   |   2   |   0   |   0   ||   4   |   0   |
      ---------------------------------------------------------------------
[ivy:publish] :: publishing :: com.tutorialspoint#test
[ivy:publish]   published application to C:\Users\Acer\.ivy2\local\com.tutorials
point\test\1.0\jars\application.jar
[ivy:publish]   published ivy to C:\Users\Acer\.ivy2\local\com.tutorialspoint\te
st\1.0\ivys\ivy.xml
BUILD SUCCESSFUL
Total time: 1 second

ローカルリポジトリでアイビーアーティファクトの公開を確認できます。

infoタスクは、ファイルにツタ固有の情報を設定するために使用され、依存関係を解決せずに使用できます。

IVY-タスクの解決の章の説明に従って、Tester.java、build.xml、およびivy.xmlを作成しましょう。

ivy公開タスクを使用するようにbuild.xmlを更新します。最初にjarファイルを作成し、次にそれを公開します。タスクを公開する前に、infoタスクを使用して必要なツタの情報を設定しました。

build.xml

<project name="test" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
   <property name = "build.dir" value = "build"/>
   <target name="resolve" description="resolve dependencies">
      <ivy:resolve />
   </target>
   <target name = "jar">
      <jar destfile = "${build.dir}/lib/application.jar" basedir = "${build.dir}/classes">      
         <manifest>
            <attribute name = "Main-Class" value = "com.tutorialspoint.Application"/>
         </manifest>
      </jar>
   </target>
   <target name="publish" depends="jar">
      <ivy:info file="ivy.xml" />
      <ivy:publish resolver="local" pubrevision="1.0" overwrite="true">
         <artifacts pattern="${build.dir}/lib/[artifact].[ext]" />
      </ivy:publish>   
   </target>
</project>

ここで、公開タスクは最初にjarをビルドし、次にivy:infoタスクを使用して情報を設定し、次にアーティファクトをローカルリポジトリに公開します。

プロジェクトの構築

すべてのファイルの準備ができたので。コンソールに移動するだけです。案内するE: > ivy フォルダを作成し、antコマンドを実行します。

E:\ivy > ant publish

Ivyが動作し、依存関係が解決されます。次の結果が表示されます。

Buildfile: E:\ivy\build.xml
jar:
publish:
 [ivy:info] :: Apache Ivy 2.5.0 - 20191020104435 :: https://ant.apache.org/ivy/
::
 [ivy:info] :: loading settings :: url = jar:file:/E:/Apache/apache-ant-1.9.14/l
ib/ivy-2.5.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:publish] :: publishing :: com.tutorialspoint#test
[ivy:publish]   published application to C:\Users\Acer\.ivy2\local\com.tutorials
point\test\1.0\jars\application.jar
[ivy:publish]   published ivy to C:\Users\Acer\.ivy2\local\com.tutorialspoint\te
st\1.0\ivys\ivy.xml
BUILD SUCCESSFUL
Total time: 0 seconds

情報タスクを配置しないと、公開タスクは機能しません。以下の変更されたbuild.xmlを使用して、組織属性がないなどのエラーを確認してください。

build.xml

<project name="test" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
   <property name = "build.dir" value = "build"/>
   <target name="resolve" description="resolve dependencies">
      <ivy:resolve />
   </target>
   <target name = "jar">
      <jar destfile = "${build.dir}/lib/application.jar"
         basedir = "${build.dir}/classes"> <manifest> <attribute name = "Main-Class" value = "com.tutorialspoint.Application"/> </manifest> </jar> </target> <target name="publish" depends="jar"> <ivy:publish resolver="local" pubrevision="1.0" overwrite="true"> <artifacts pattern="${build.dir}/lib/[artifact].[ext]" />
      </ivy:publish>   
   </target>
</project>

案内する E: > ivy フォルダを作成し、antコマンドを実行します。

E:\ivy > ant publish

Ivyが動作し、依存関係が解決されます。次の結果が表示されます。

Buildfile: E:\ivy\build.xml
jar:
publish:
[ivy:publish] :: Apache Ivy 2.5.0 - 20191020104435 :: https://ant.apache.org/ivy
/ ::
[ivy:publish] :: loading settings :: url = jar:file:/E:/Apache/apache-ant-1.9.14
/lib/ivy-2.5.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
BUILD FAILED
E:\ivy\build.xml:28: no organisation provided for ivy publish task: It can eithe
r be set explicitly via the attribute 'organisation' or via 'ivy.organisation' p
roperty or a prior call to <resolve/>
Total time: 3 seconds

リゾルバーは、ライブラリをダウンロードする場所を見つけるために使用されます。依存関係リゾルバーは、一般的なタスクも処理します。Ivyは2種類のリゾルバーを提供します。

  • Composite −他のリゾルバーを使用してタスクを実行するリゾルバー。

  • Standard −リゾルバーは必要なタスクを実行します。

標準レゾルバ

次の表に、標準のリゾルバーとその使用法を示します。

シニア番号 名前(タイプ)と説明
1

IvyRep (Standard)

ivyrep上のIvyファイルとibiblio上のアーティファクトを検索します。
2

IBiblio (Standard)

アイビブリオの遺物を見つけます。
3

BinTray (Standard)

bintray上のアーティファクトを見つけます。
4

Packager (Standard)

URLを介してIvyファイルとパッケージ化手順を検索し、手順を使用してアーティファクトを作成します。
5

FileSystem (Standard)

ローカルファイルシステム上のIvyファイルとアーティファクトを検索します。
6

URL (Standard)

URLを使用してアクセスできるリポジトリ上のIvyファイルとアーティファクトを検索します。
7

MirroredURL (Standard)

ミラーリストのURLを使用してアクセスできるリポジトリ上のIvyファイルとアーティファクトを検索します。
8

VFS (Standard)

Apache CommonsVFSを使用してアクセスできるリポジトリ上のIvyファイルとアーティファクトを検索します。
9

SSH (Standard)

SSHを使用してアクセスできるリポジトリ上のIvyファイルとアーティファクトを検索します。
10

SFTP (Standard)

SFTPを使用してアクセスできるリポジトリ上のIvyファイルとアーティファクトを検索します。
11

Jar (Standard)

jar内のリポジトリにあるIvyファイルとアーティファクトを検索します。
12

Chain (Composite)

検索をサブリゾルバーのチェーンに委任します。
13

Dual (Composite)

検索を1つのリゾルバーに委任し、アーティファクトを別のリゾルバーに委任します。
14

OBR (Standard)

モジュールをOSGiobr.xmlによってリストされたOSGiバンドルとして解決します。
15

Eclipse updatesite (Standard)

モジュールを、Eclipse更新サイトでホストされているOSGiバンドルとして解決します。
16

OSGi-agg (Composite)

OSGiバンドルをサポートするサブリゾルバーのチェーンに検索を委任します。

Tester.java、build.xml、ivy.xmlを新しいプロジェクトで作成しましょう。 E: > ivy2IVY-タスクの解決の章で説明されているものと同様のフォルダ。下に設定フォルダを作成しますE: > ivy2。設定フォルダーにivysettings.xmlを作成します。

build.xml

<project name="test" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
   <property name = "build.dir" value = "build"/>
   <property name = "base.dir" value = ""/>
   <target name="resolve" description="resolve dependencies">
      <ivy:resolve />
   </target>
   <target name="compile" depends="resolve" description="Compile">
      <mkdir dir="build/classes" />
      <javac srcdir="src" destdir="build/classes">
         <classpath refid="new.classpath" />
      </javac>
   </target>
</project>

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="org.apache" module="chained-resolvers"/>
   <dependencies>
      <dependency org="commons-lang" name="commons-lang" rev="2.6" conf="default"/>
      <dependency org="com.tutorialspoint" name="test" rev="1.0"/>
   </dependencies>
</ivy-module>

ここでは、2つの依存関係を追加しました。1つはcommons-langライブラリで、もう1つはIVYで公開したテストとして-タスクの公開の章です。

ivysettings.xml

<ivysettings>
   <settings defaultResolver="multiresolver"/>
   <resolvers>
      <chain name="multiresolver">
         <filesystem name="libraries">
            <artifact pattern="${ivy.settings.dir}/repository/[artifact]-[revision].[ext]"/>
         </filesystem>
         <ibiblio name="ibiblio" m2compatible="true"/>
      </chain>
   </resolvers>
</ivysettings>

ここでは、2つのリゾルバーを持つチェーンリゾルバーを使用して作成された複合リゾルバーを追加しました。1つはローカルリポジトリにライブラリを配置するための名前付きライブラリ、もう1つはmavenパブリックリポジトリにある名前付きibiblioです。

プロジェクトの構築

すべてのファイルの準備ができたので。コンソールに移動するだけです。案内するE: > ivy2 フォルダを作成し、antコマンドを実行します。

E:\ivy > ant

Ivyが動作し、依存関係が解決されます。次の結果が表示されます。

Buildfile: E:\ivy2\build.xml
resolve:
[ivy:resolve] :: Apache Ivy 2.5.0 - 20191020104435 :: https://ant.apache.org/ivy
/ ::
[ivy:resolve] :: loading settings :: url = jar:file:/E:/Apache/apache-ant-1.9.14
/lib/ivy-2.5.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:resolve] :: resolving dependencies :: org.apache#chained-resolvers;working@
Acer-PC
[ivy:resolve]   confs: [default]
[ivy:resolve]   found commons-lang#commons-lang;2.6 in public
[ivy:resolve]   found com.tutorialspoint#test;1.0 in local
[ivy:resolve]   found junit#junit;3.8.1 in public
[ivy:resolve] downloading C:\Users\Acer\.ivy2\local\com.tutorialspoint\test\1.0\
jars\application.jar ...
[ivy:resolve] .. (1kB)
[ivy:resolve] .. (0kB)
[ivy:resolve]   [SUCCESSFUL ] com.tutorialspoint#test;1.0!application.jar (13ms)
[ivy:resolve] :: resolution report :: resolve 1085ms :: artifacts dl 22ms
      ---------------------------------------------------------------------
      |                  |            modules            ||   artifacts   |
      |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
      ---------------------------------------------------------------------
      |      default     |   3   |   3   |   1   |   0   ||   5   |   1   |
      ---------------------------------------------------------------------
BUILD SUCCESSFUL
Total time: 9 seconds

ログでは、ローカルリポジトリリゾルバーとパブリックリポジトリリゾルバーの両方を使用したことを確認できます。

ローカルリポジトリは、ユーザーのプライベートリポジトリです。他の場所でバージョンが変更され、重大な変更が加えられたライブラリをユーザーが使用している場合に非常に役立ちます。ローカルリポジトリの場合、ivyは、見つかった場合はローカルに存在するライブラリを使用し、パブリックリポジトリまたは共有リポジトリを調べません。

デフォルトの場所

デフォルトでは、ローカルリポジトリは$ {ivy.default.ivy.user.dir} / localフォルダーにあります。変更する場合は、antファイルのivy.local.default.root変数を使用してください。

build.xml

<target name="resolve">
   <property name="ivy.local.default.root" value="/opt/ivy/repository/local"/>
   <ivy:resolve />
</target>

アイビーパターンやアーティファクトパターンなどの他のプロパティも次のようにカスタマイズできます-

build.xml

<target name="resolve">
   <property name="ivy.local.default.root" value="/opt/ivy/repository/local"/>
   <property name="ivy.local.default.ivy.pattern" value="[module]/[revision]/ivy.xml"/>
   <property name="ivy.local.default.artifact.pattern" value="[module]/[revision]/[artifact].[ext]"/>
   <ivy:resolve />
</target>

ivysettingsのデフォルトをオーバーライドする

デフォルトでは、ivyの構成はivy.jarにあるivysettings.xmlにあります。

ivysettings.xml

<ivysettings>
   <settings defaultResolver="default"/>
   <include url="${ivy.default.settings.dir}/ivysettings-public.xml"/> <include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/>
   <include url="${ivy.default.settings.dir}/ivysettings-local.xml"/> <include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/>
   <include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/>
</ivysettings>

ローカルリポジトリ設定を上書きするには、ivysettings-local.xmlの内容を更新します。

ivysettings-local.xml

<ivysettings>
   <property name="ivy.local.default.root" value="${ivy.default.ivy.user.dir}/local" override="false"/>
   <property name="ivy.local.default.ivy.pattern" value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" override="false"/>
   <property name="ivy.local.default.artifact.pattern" value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" override="false"/>
   <resolvers>
      <filesystem name="local">
         <ivy pattern="${ivy.local.default.root}/${ivy.local.default.ivy.pattern}" />
         <artifact pattern="${ivy.local.default.root}/${ivy.local.default.artifact.pattern}" />
      </filesystem>
   </resolvers>
</ivysettings>

共有リポジトリは、チームのチームレベルの共有リポジトリです。組織でオーバーライドされることは非常に一般的です。

デフォルトの場所

デフォルトでは、共有リポジトリは$ {ivy.default.ivy.user.dir} / sharedフォルダーにあります。変更する場合は、antファイルのivy.shared.default.root変数を使用してください。

build.xml

<target name="resolve">
   <property name="ivy.shared.default.root" value="/opt/ivy/repository/shared"/>
   <ivy:resolve />
</target>

アイビーパターンやアーティファクトパターンなどの他のプロパティも次のようにカスタマイズできます-

build.xml

<target name="resolve">
   <property name="ivy.shared.default.root" value="/opt/ivy/repository/shared"/>
   <property name="ivy.shared.default.ivy.pattern" value="[organisation]/[module]/[revision]/ivy.xml"/>
   <property name="ivy.shared.default.artifact.pattern" value="[organisation]/[module]/[revision]/[artifact].[ext]"/>
   <ivy:resolve />
</target>

ivysettingsのデフォルトをオーバーライドする

デフォルトでは、ivyの構成はivy.jarにあるivysettings.xmlにあります。

ivysettings.xml

<ivysettings>
   <settings defaultResolver="default"/>
   <include url="${ivy.default.settings.dir}/ivysettings-public.xml"/>
   <include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/> <include url="${ivy.default.settings.dir}/ivysettings-local.xml"/>
   <include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/> <include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/>
</ivysettings>

共有リポジトリ設定を上書きするには、ivysettings-shared.xmlの内容を更新します。

ivysettings-shared.xml

<ivysettings>
   <property name="ivy.shared.default.root" value="${ivy.default.ivy.user.dir}/shared" override="false"/> <property name="ivy.shared.default.ivy.pattern" value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" override="false"/> <property name="ivy.shared.default.artifact.pattern" value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" override="false"/> <resolvers> <filesystem name="shared"> <ivy pattern="${ivy.shared.default.root}/${ivy.shared.default.ivy.pattern}" /> <artifact pattern="${ivy.shared.default.root}/${ivy.shared.default.artifact.pattern}" />
      </filesystem>
   </resolvers>
</ivysettings>

パブリックリポジトリは、インターネットを使用してアクセスできるリポジトリであり、サードパーティのモジュールがあります。デフォルトでは、m2互換モードのibiblioがパブリックリポジトリです。Maven2パブリックリポジトリとも呼ばれます。

ivysettingsのデフォルトをオーバーライドする

デフォルトでは、ivyの構成はivy.jarにあるivysettings.xmlにあります。

ivysettings.xml

<ivysettings>
   <settings defaultResolver="default"/>
   <include url="${ivy.default.settings.dir}/ivysettings-public.xml"/>
   <include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/> <include url="${ivy.default.settings.dir}/ivysettings-local.xml"/>
   <include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/> <include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/>
</ivysettings>

パブリックリポジトリの設定を上書きするには、ivysettings-public.xmlの内容を更新するか、プロジェクトの設定フォルダーにivysettings.xmlを作成します。

ivysettings.xml

<ivysettings>
   <settings defaultResolver="default"/>
   <include url="http://customserver/ivy/ivysettings-public.xml"/>
   <include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/> <include url="${ivy.default.settings.dir}/ivysettings-local.xml"/>
   <include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/> <include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/>
</ivysettings>

デフォルトのivysetting-public.xmlの内容を更新します。

Original - ivysetting-public.xml

<ivysettings>
   <resolvers>
      <ibiblio name="public" m2compatible="true"/>
   </resolvers>
</ivysettings>

Updated - ivysetting-public.xml

<ivysettings>
   <resolvers>
      <filesystem name="public">
         <ivy pattern="/path/to/my/public/rep/[organisation]/[module]/ivy-[revision].xml" />
         <artifact pattern="/path/to/my/public/rep/[organisation]/[module]/[artifact]-[revision].[ext]" />
      </filesystem>
   </resolvers>
</ivysettings>