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>