Apache IVY - คู่มือฉบับย่อ

Apache Ivy เป็นเครื่องมือจัดการการพึ่งพาที่ได้รับความนิยมและทรงพลังมากซึ่งใช้ในการจัดการการอ้างอิงในโครงการที่ใช้ ANT ในรูปแบบเดียวกันวิธีที่ Apache Maven จัดการการอ้างอิง

Apache Ivy ใช้ Apache ANT ตามหลักการออกแบบเดียวกันเป็นโครงการย่อยของ Apache ANT และได้รับการจัดการและสนับสนุนโดย Apache ANT Community

คุณสมบัติ

คุณสมบัติที่สำคัญของ Apache Ivy มีดังต่อไปนี้

  • ANT Based- Apache Ivy ให้ความสามารถในการจัดการการอ้างอิงสำหรับโครงการที่ใช้ ANT ใช้งานง่ายมากเช่นกัน

  • Dependency Reports - Apache Ivy มีตัวเลือกในการพิมพ์กราฟอ้างอิงในรูปแบบ html และในรูปแบบรายงาน

  • Non-intrusive- Apache Ivy ไม่ได้กำหนดข้อ จำกัด ใด ๆ ว่าเป็นส่วนหนึ่งของการแจกจ่าย แม้แต่ไฟล์สร้างก็ไม่ได้ขึ้นอยู่กับ Apache Ivy

  • Highly Flexible - Apache Ivy มีการกำหนดค่าเริ่มต้นมากมายและสามารถกำหนดค่าตามความต้องการได้อย่างง่ายดาย

  • Extendible- Apache Ivy สามารถขยายได้อย่างง่ายดาย คุณสามารถกำหนดที่เก็บของคุณเองตัวแก้ไขข้อขัดแย้งและกลยุทธ์ล่าสุด

  • Performance- Apache Ivy สร้างขึ้นเพื่อประสิทธิภาพ มันเก็บแคชของห้องสมุดที่ดาวน์โหลดไว้แล้ว ค้นหาที่เก็บในเครื่องก่อนเพื่อแก้ไขการอ้างอิงมากกว่าดูที่เก็บอื่น ๆ

  • Transitive Dependencies - Apache Ivy จะจัดการการอ้างอิงสกรรมกริยาโดยอัตโนมัติหากโครงการหรือไลบรารีหนึ่งขึ้นอยู่กับไลบรารีอื่นซึ่งอาจต้องการไลบรารีอื่น

  • Maven Repository- Apache Ivy เป็นไปตามอนุสัญญาที่คล้ายกับอนุสัญญาที่เก็บ Maven Apache Ivy สามารถแก้ไขการอ้างอิงโดยใช้ maven global repository

  • Maven 2 POMs- Apache Ivy สามารถอ่าน Maven 2 POM เป็นตัวบอกโมดูลสามารถตั้งค่า ivy เป็นตัวบอกโมดูลได้ ดังนั้นจึงทำให้ง่ายต่อการโยกย้ายโครงการที่มีอยู่ไปยังโครงการที่มีการจัดการของ IVY

  • Publishing - Apache Ivy ให้การสนับสนุนในการเผยแพร่โครงการของคุณและลดความซับซ้อนของกระบวนการปรับใช้สภาพแวดล้อมหลายโครงการ

  • Free to Use - Apache Ivy เป็นโอเพ่นซอร์สและใช้งานได้ฟรี

  • Documentation - Apache Ivy มีเอกสารและแบบฝึกหัดที่ละเอียดมากให้เรียนรู้

Apache Ivy ต้องการ Java และ ANT ที่ติดตั้งบนเครื่องของคุณเป็นข้อกำหนดเดียว

Apache Ant จัดจำหน่ายภายใต้สัญญาอนุญาตซอฟต์แวร์ Apache ซึ่งเป็นใบอนุญาตโอเพนซอร์สเต็มรูปแบบที่ได้รับการรับรองโดยโครงการริเริ่มโอเพ่นซอร์ส

Apache Ant เวอร์ชันล่าสุดรวมทั้งซอร์สโค้ดไฟล์คลาสและเอกสารประกอบสามารถดูได้ที่ http://ant.apache.org.

การติดตั้ง Apache Ant

สันนิษฐานว่าคุณได้ดาวน์โหลดและติดตั้ง Java Development 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 โฟลเดอร์

  • ต่อท้ายพา ธ ไปยังไฟล์แบตช์ Apache Ant กับตัวแปรสภาพแวดล้อม PATH ในกรณีของเรานี่จะเป็นไฟล์c:\apache-ant-1.9.14-bin\bin โฟลเดอร์

กำลังตรวจสอบการติดตั้ง Apache Ant

ในการตรวจสอบว่าการติดตั้ง Apache Ant บนคอมพิวเตอร์ของคุณสำเร็จให้พิมพ์ ant บนพรอมต์คำสั่งของคุณ

คุณควรเห็นผลลัพธ์ที่คล้ายกับ -

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

หากคุณไม่เห็นผลลัพธ์ข้างต้นโปรดตรวจสอบว่าคุณได้ทำตามขั้นตอนการติดตั้งอย่างถูกต้อง

การติดตั้ง Apache Ivy

  • ดาวน์โหลดไบนารีจาก 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 โฟลเดอร์

กำลังตรวจสอบการติดตั้ง Apache Ivy

ในการตรวจสอบการติดตั้ง Apache Ivy บนคอมพิวเตอร์ของคุณสำเร็จให้สร้างไฟล์ build ต่อไปนี้ในโฟลเดอร์ 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 กับ Eclipse IDE ดังนั้นหากคุณยังไม่ได้ติดตั้ง Eclipse โปรดดาวน์โหลดและติดตั้ง Eclipse

ในการติดตั้ง Eclipse -

  • ดาวน์โหลดไบนารี Eclipse ล่าสุดจากwww.eclipse.org

  • แตกไฟล์ไบนารี Eclipse ไปยังตำแหน่งที่สะดวกพูด c: \ folder

  • เรียกใช้ Eclipse จาก c: \ eclipse \ eclipse.exe

พิจารณาตัวอย่างต่อไปนี้ ivy.xml เพื่อทำความเข้าใจคำศัพท์ของ Ivy

<?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>

ข้อกำหนดของ Ivy

ต่อไปนี้เป็นเงื่อนไขสำคัญของ Ivy Eco-System

  • Organisation- ตามชื่อที่แนะนำหมายถึงชื่อ บริษัท ผู้พัฒนารายบุคคลหรือชื่อทีมที่สร้างโครงการหรือไลบรารี ตัวอย่างเช่น com.tutorialspoint

  • Module- ตามชื่อมันหมายถึงหน่วยหรือโมดูลที่ใช้ซ้ำได้ โดยทั่วไปโมดูลจะมีเวอร์ชันติดอยู่ ตัวอย่างเช่น commons-lang หรือ ivy-test เป็นต้น

  • Module Descriptor- ตัวบอกโมดูลหมายถึงไฟล์ ivy.xml ซึ่งอธิบายโมดูล ตัวอธิบายโมดูลประกอบด้วยตัวระบุ (องค์กรชื่อสาขาและเวอร์ชัน) สิ่งประดิษฐ์ที่เผยแพร่การกำหนดค่าและการอ้างอิง

  • Artifact- Artifact หมายถึงไฟล์เดียวที่สามารถส่งมอบได้ ตัวอย่างเช่นไฟล์ jar Artifact สามารถเป็นประเภท: 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 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>

แท็กของไฟล์การตั้งค่า Ivy

ต่อไปนี้เป็นแท็กสำคัญของไฟล์ Ivy Setting

  • property- เพื่อตั้งค่าตัวแปรไม้เลื้อย คาร์ดินาลิตี้: 0..n

  • properties- ในการตั้งค่าตัวแปร ivy โดยใช้ไฟล์คุณสมบัติ คาร์ดินาลิตี้: 0..n

  • settings- ในการกำหนดค่าไม้เลื้อยด้วยค่าเริ่มต้น Cardinality: 0..1

  • include- เพื่อรวมไฟล์การตั้งค่าอื่น คาร์ดินาลิตี้: 0..n

  • classpath- เพื่อเพิ่มตำแหน่งใน classpath ที่ใช้ในการโหลดปลั๊กอิน คาร์ดินาลิตี้: 0..n

  • typedef- เพื่อกำหนดประเภทใหม่ในไม้เลื้อย คาร์ดินาลิตี้: 0..n

  • lock-strategies- กำหนดกลยุทธ์การล็อก Cardinality: 0..1

  • caches- เพื่อกำหนดตัวจัดการแคชที่เก็บ Cardinality: 0..1

  • latest-strategies- กำหนดกลยุทธ์ล่าสุด Cardinality: 0..1

  • parsers- เพื่อกำหนดตัวอธิบายโมดูลตัวแยกวิเคราะห์ Cardinality: 0..1

  • version-matchers- เพื่อกำหนดตัวจับคู่เวอร์ชันใหม่ Cardinality: 0..1

  • triggers- ในการลงทะเบียนทริกเกอร์เหตุการณ์ไอวี่ Cardinality: 0..1

  • namespaces- เพื่อกำหนดเนมสเปซใหม่ Cardinality: 0..1

  • macrodef- เพื่อกำหนดตัวแก้ไขมาโครใหม่ คาร์ดินาลิตี้: 0..n

  • resolvers- เพื่อกำหนดตัวแก้ไขการพึ่งพา Cardinality: 0..1

  • conflict-managers- กำหนดผู้จัดการความขัดแย้ง Cardinality: 0..1

  • modules- เพื่อกำหนดกฎระหว่างโมดูลและตัวแก้ไขการอ้างอิง Cardinality: 0..1

  • outputters- เพื่อกำหนดรายชื่อผู้ส่งรายงานที่มีอยู่ Cardinality: 0..1

  • statuses- เพื่อกำหนดรายการสถานะที่มีอยู่ Cardinality: 0..1

IvyDE เป็นปลั๊กอิน Eclipse ที่จัดทำโดย Apache ในการติดตั้ง IvyDE ให้เริ่ม Eclipse และไปที่ Help> Install New Software จะแสดงหน้าต่าง Available Softwares เข้าสู่เว็บไซต์อัพเดต IvyDE http://www.apache.org/dist/ant/ivyde/updatesite/และกดปุ่ม Enter จะแสดงปลั๊กอินต่อไปนี้

คลิกถัดไปและคุณจะเห็นหน้าจอต่อไปนี้

หากคุณพบข้อผิดพลาดขณะติดตั้งปลั๊กอินให้รีสตาร์ทกระบวนการ หลังจากติดตั้งสำเร็จคุณจะเห็นปลั๊กอินใน eclipe

ตอนนี้คุณสามารถจัดการการพึ่งพาโดยใช้ Eclipse และ Ivy

Resolve task ใช้เพื่อแก้ไขการอ้างอิงที่อธิบายไว้ใน ivy.xml ดาวน์โหลดและวางไว้ใน ivy cache

ก่อนอื่นมาสร้างไฟล์ java Tester.java ใน E: > ivy > src > com > tutorialspoint โฟลเดอร์ซึ่งจะทำหน้าที่เป็นโฟลเดอร์ต้นทางสำหรับโครงการมด

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 commons lang เพื่อใช้คลาส 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 - องค์ประกอบรูทเพื่อระบุชื่อโครงการเนมสเปซงานเริ่มต้นสำหรับไม้เลื้อยเป็นต้น

  • target- องค์ประกอบเป้าหมายเพื่อสร้างงานใหม่และคำอธิบาย สิ่งนี้มีงานแก้ไขไอวี่ เมื่อมดสร้างโปรเจ็กต์มันจะรันภารกิจการแก้ไขไอวี่ซึ่งจะแก้ไขการอ้างอิงโดยใช้ไอวี่

การสร้างโครงการ

เนื่องจากเรามีไฟล์ทั้งหมดพร้อมแล้ว เพียงแค่ไปที่คอนโซล นำทางไปยังE: > ivy โฟลเดอร์และเรียกใช้คำสั่ง ant

E:\ivy > ant

ไอวี่จะเข้ามาดำเนินการแก้ไขการอ้างอิงคุณจะเห็นผลลัพธ์ต่อไปนี้

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

มาสร้าง Tester.java, build.xml และ ivy.xml ตามที่อธิบายไว้ในIVY - Resolve Task chapter

อัพเดต build.xml เพื่อใช้งานการติดตั้ง ivy

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

ไอวี่จะเข้ามาดำเนินการแก้ไขการอ้างอิงคุณจะเห็นผลลัพธ์ต่อไปนี้

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.default.ivy.user.dir} > .ivy2 > local ไดเรกทอรี

งานดึงข้อมูลใช้เพื่อแก้ไขการอ้างอิงไปยังตำแหน่งที่ระบุในพื้นที่ทำงานของโครงการ

มาสร้าง Tester.java, build.xml และ ivy.xml ตามที่อธิบายไว้ในIVY - Resolve Task chapter

อัพเดต build.xml เพื่อใช้งานการดึงข้อมูล ivy

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 - ซิงค์จริงตรวจสอบให้แน่ใจว่าไดเร็กทอรี lib ทันสมัยและไฟล์พิเศษใด ๆ จะถูกลบ

  • type- type สั่งให้ ivy คัดลอกเฉพาะสิ่งประดิษฐ์ที่ระบุเช่น jar โถต้นทางโถ javadoc จะถูกละเว้น ประเภทสำหรับ jar ต้นทางคือ src หรือ source และ doc หรือ bundle สำหรับ javadoc jar

งานที่ดึงข้อมูลจะคัดลอกการอ้างอิงที่แก้ไขในไดเร็กทอรี lib ของโปรเจ็กต์ตามค่าเริ่มต้นและสามารถเปลี่ยนแปลงได้โดยใช้แอ็ตทริบิวต์ pattern

การสร้างโครงการ

เนื่องจากเรามีไฟล์ทั้งหมดพร้อมแล้ว เพียงแค่ไปที่คอนโซล นำทางไปยังE: > ivy โฟลเดอร์และเรียกใช้คำสั่ง ant

E:\ivy > ant

ไอวี่จะเข้ามาดำเนินการแก้ไขการอ้างอิงคุณจะเห็นผลลัพธ์ต่อไปนี้

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

คุณสามารถตรวจสอบไฟล์ที่ดาวน์โหลดในไดเร็กทอรี lib ของโครงการ

งาน cachepath ใช้เพื่อสร้างคลาสพา ธ ANT ที่มีอาร์ติแฟกต์ที่แก้ไขแล้วที่มีอยู่ในแคช เนื่องจาก ANT ต้องการ jars เพื่อเป็น classpath เพื่อรวบรวมไฟล์ java Ivy cachepath จึงสร้าง classpath

มาสร้าง Tester.java, build.xml และ ivy.xml ตามที่อธิบายไว้ในIVY - Resolve Task chapter

อัพเดต build.xml เพื่อใช้งานการดึงข้อมูล ivy

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 - id ของ classpath ที่มี jar ที่แคชอยู่

งานที่ดึงข้อมูลจะคัดลอกการอ้างอิงที่แก้ไขในไดเร็กทอรี lib ของโปรเจ็กต์ตามค่าเริ่มต้นและสามารถเปลี่ยนแปลงได้โดยใช้แอ็ตทริบิวต์ pattern

การสร้างโครงการ

เนื่องจากเรามีไฟล์ทั้งหมดพร้อมแล้ว เพียงแค่ไปที่คอนโซล นำทางไปยังE: > ivy โฟลเดอร์และเรียกใช้คำสั่ง ant

E:\ivy > ant compile

ไอวี่จะเข้ามาดำเนินการแก้ไขการอ้างอิงคุณจะเห็นผลลัพธ์ต่อไปนี้

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

คุณสามารถตรวจสอบไฟล์คลาสที่คอมไพล์ในไดเร็กทอรี build ของโปรเจ็กต์

งานเผยแพร่ใช้เพื่อเผยแพร่อาร์ติแฟกต์ปัจจุบันและไฟล์ตัวอธิบายที่ได้รับการแก้ไขไปยังที่เก็บที่กล่าวถึง

มาสร้าง Tester.java, build.xml และ ivy.xml ตามที่อธิบายไว้ในIVY - Resolve Task chapter

อัปเดต build.xml เพื่อใช้งานการเผยแพร่ ivy ก่อนอื่นเราจะสร้างไฟล์ 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

ไอวี่จะเข้ามาดำเนินการแก้ไขการอ้างอิงคุณจะเห็นผลลัพธ์ต่อไปนี้

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

คุณสามารถตรวจสอบการเผยแพร่สิ่งประดิษฐ์ ivy ในที่เก็บในเครื่อง

งานข้อมูลใช้เพื่อตั้งค่าข้อมูลเฉพาะของไอวี่ในไฟล์และสามารถใช้ได้โดยไม่ต้องแก้ไขการอ้างอิงใด ๆ

มาสร้าง Tester.java, build.xml และ ivy.xml ตามที่อธิบายไว้ในIVY - Resolve Task chapter

อัปเดต build.xml เพื่อใช้งานการเผยแพร่ ivy ก่อนอื่นเราจะสร้างไฟล์ 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: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

ไอวี่จะเข้ามาดำเนินการแก้ไขการอ้างอิงคุณจะเห็นผลลัพธ์ต่อไปนี้

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

ไอวี่จะเข้ามาดำเนินการแก้ไขการอ้างอิงคุณจะเห็นผลลัพธ์ต่อไปนี้

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

Resolvers ใช้เพื่อค้นหาตำแหน่งที่จะดาวน์โหลดไลบรารี ตัวแก้ไขการพึ่งพายังจัดการกับงานทั่วไป Ivy มี Resolvers สองประเภท

  • Composite - ตัวแก้ไขที่ใช้ตัวแก้ไขอื่น ๆ ในการทำงาน

  • Standard - ตัวแก้ไขทำงานตามที่ต้องการ

Resolvers มาตรฐาน

ตารางต่อไปนี้แสดงรายการตัวแก้ไขมาตรฐานและการใช้งาน

ซีเนียร์ ชื่อ (ประเภท) และคำอธิบาย
1

IvyRep (Standard)

ค้นหาไฟล์ Ivy บน ivyrep และ artifacts บน ibiblio
2

IBiblio (Standard)

ค้นหาสิ่งประดิษฐ์บน ibiblio
3

BinTray (Standard)

ค้นหาสิ่งประดิษฐ์บน bintray
4

Packager (Standard)

ค้นหาไฟล์ Ivy และคำแนะนำในการบรรจุผ่าน URL สร้างสิ่งประดิษฐ์โดยใช้คำแนะนำ
5

FileSystem (Standard)

ค้นหาไฟล์ Ivy และสิ่งประดิษฐ์บนระบบไฟล์โลคัล
6

URL (Standard)

ค้นหาไฟล์ Ivy และสิ่งประดิษฐ์บนที่เก็บซึ่งสามารถเข้าถึงได้โดยใช้ URL
7

MirroredURL (Standard)

ค้นหาไฟล์ Ivy และสิ่งประดิษฐ์บนที่เก็บซึ่งสามารถเข้าถึงได้โดยใช้ URL จากรายการมิเรอร์
8

VFS (Standard)

ค้นหาไฟล์ Ivy และสิ่งประดิษฐ์บนที่เก็บซึ่งสามารถเข้าถึงได้โดยใช้ Apache Commons VFS
9

SSH (Standard)

ค้นหาไฟล์ Ivy และสิ่งประดิษฐ์บนที่เก็บซึ่งสามารถเข้าถึงได้โดยใช้ SSH
10

SFTP (Standard)

ค้นหาไฟล์ Ivy และสิ่งประดิษฐ์บนที่เก็บซึ่งสามารถเข้าถึงได้โดยใช้ SFTP
11

Jar (Standard)

ค้นหาไฟล์ Ivy และสิ่งประดิษฐ์บนที่เก็บภายใน jar
12

Chain (Composite)

มอบหมายการค้นหาให้กับโซ่ของตัวแก้ไขย่อย
13

Dual (Composite)

มอบหมายการค้นหาให้กับตัวแก้ไขและสิ่งประดิษฐ์หนึ่งไปยังอีกตัวหนึ่ง
14

OBR (Standard)

แก้ไขโมดูลเป็นบันเดิล OSGi ที่แสดงรายการโดย OSGi obr.xml
15

Eclipse updatesite (Standard)

แก้ไขโมดูลเป็นบันเดิล OSGi ซึ่งโฮสต์บนไซต์อัพเดต Eclipse
16

OSGi-agg (Composite)

มอบหมายการค้นหาให้กับเชนของตัวแก้ไขย่อยที่สนับสนุนบันเดิล OSGi

มาสร้าง Tester.java, build.xml และ ivy.xml ในโปรเจ็กต์ใหม่ภายใต้ E: > ivy2โฟลเดอร์ที่คล้ายกับที่อธิบายไว้ในIVY - Resolve Task chapter สร้างโฟลเดอร์การตั้งค่าภายใต้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>

ที่นี่เราได้เพิ่มการอ้างอิงสองรายการหนึ่งในไลบรารีคอมมอนส์และอีกอันเป็นการทดสอบที่เราเผยแพร่ใน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>

ที่นี่เราได้เพิ่มการสร้างตัวแก้ไขแบบคอมโพสิตโดยใช้ตัวแก้ไขโซ่ซึ่งมีตัวแก้ไขสองตัวหนึ่งไลบรารีชื่อหนึ่งเพื่อค้นหาไลบรารีบนพื้นที่เก็บข้อมูลในเครื่องและอีกหนึ่งชื่อ ibiblio บนที่เก็บสาธารณะ maven

การสร้างโครงการ

เนื่องจากเรามีไฟล์ทั้งหมดพร้อมแล้ว เพียงแค่ไปที่คอนโซล นำทางไปยังE: > ivy2 โฟลเดอร์และเรียกใช้คำสั่ง ant

E:\ivy > ant

ไอวี่จะเข้ามาดำเนินการแก้ไขการอ้างอิงคุณจะเห็นผลลัพธ์ต่อไปนี้

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.default.ivy.user.dir} / local หากคุณต้องการเปลี่ยนแปลงให้ใช้ตัวแปร ivy.local.default.root ในไฟล์ ant

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 มีการกำหนดค่าใน ivysettings.xml อยู่ใน ivy.jar

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} / โฟลเดอร์ที่ใช้ร่วมกัน หากคุณต้องการเปลี่ยนแปลงให้ใช้ตัวแปร ivy.shared.default.root ในไฟล์ ant

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 มีการกำหนดค่าใน ivysettings.xml อยู่ใน ivy.jar

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>

ที่เก็บสาธารณะคือที่เก็บที่เข้าถึงได้โดยใช้อินเทอร์เน็ตและมีโมดูลของบุคคลที่สาม โดยดีฟอลต์ ibiblio ในโหมดที่เข้ากันได้กับ m2 คือที่เก็บสาธารณะ เรียกอีกอย่างว่า maven 2 public repository

การลบล้างค่าเริ่มต้นของการตั้งค่า ivysettings

โดยค่าเริ่มต้น ivy มีการกำหนดค่าใน ivysettings.xml อยู่ใน ivy.jar

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>