首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Ivy 參考文檔:Ant 任務總覽與入門

     編輯:Java 相關知識

Ant 任務總覽

使用 Ivy 的主要方式是在 Ant 建構檔案中。Ivy 也可作為獨立應用被調用。

Ant 1.6.0+ 設定

僅需在專案中加入 Ivy 命名空間:

xmlns:ivy="antlib:org.apache.ivy.ant"

即可調用 ivy 任務。

自訂 Ivy.jar 位置

<path id="ivy.lib.path">
  <fileset dir="path/to/dir/with/ivy/jar" includes="*.jar"/>
</path>
<taskdef resource="org/apache/ivy/ant/antlib.xml"
  uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>

Ant 1.5.1+ 設定

需逐一定義任務:

<taskdef name="ivy-configure" classname="org.apache.ivy.ant.IvyConfigure"/>
<taskdef name="ivy-resolve" classname="org.apache.ivy.ant.IvyResolve"/>
<taskdef name="ivy-retrieve" classname="org.apache.ivy.ant.IvyRetrieve"/>
<taskdef name="ivy-deliver" classname="org.apache.ivy.ant.IvyDeliver"/>
<taskdef name="ivy-publish" classname="org.apache.ivy.ant.IvyPublish"/>

注意:以上非詳盡列表,完整列表請查看 antlib.xml。

從 Ant 調用 Ivy:入門步驟

最簡單的用法是不帶參數調用 retrieve 任務:

<ivy:retrieve />

等同於:

<target name="resolve">
  <ivy:configure />
  <ivy:resolve file="${ivy.dep.file}" conf="${ivy.configurations}" />
  <ivy:retrieve pattern="${ivy.retrieve.pattern}" conf="${ivy.configurations}" />
</target>

三大核心步驟

  1. configure:透過 XML 設定檔告訴 Ivy 如何尋找依賴
  2. resolve:實際解析 ivy 檔案描述的依賴,放入 Ivy 快取
  3. retrieve:從快取複製依賴到檔案系統,後續可用標準 Ant 路徑建構 classpath

預設屬性檔

configure 被調用時,Ivy 載入一個包含以下屬性的屬性檔:

ivy.project.dir = ${basedir}
ivy.lib.dir = ${ivy.project.dir}/lib
ivy.build.artifacts.dir = ${ivy.project.dir}/build/artifacts
ivy.distrib.dir = ${ivy.project.dir}/distrib

ivy.resolver.default.check.modified = false
ivy.default.always.check.exact.revision = true
ivy.configurations = *
ivy.resolve.default.type.filter = *
ivy.status = integration
ivy.dep.file = ivy.xml
ivy.settings.file = ivysettings.xml
ivy.retrieve.pattern = ${ivy.lib.dir}/[artifact]-[revision].[ext]
ivy.deliver.ivy.pattern = ${ivy.distrib.dir}/[type]s/[artifact]-[revision].[ext]
ivy.publish.src.artifacts.pattern = ${ivy.distrib.dir}/[type]s/[artifact]-[revision].[ext]
ivy.report.output.pattern = [organisation]-[module]-[conf].[ext]
ivy.buildlist.ivyfilepath = ivy.xml
ivy.checksums = sha1,md5

2.0 版後,首次 Ivy 任務調用後 ivy.version 屬性可用,包含使用的 Ivy 版本。

Ivy 任務屬性來源優先順序

  1. 任務屬性
  2. Ivy 實例(由 configure 建立,供後續任務重用)
  3. 專案屬性

優先順序由高到低,任務屬性會覆蓋實例中的值。

主要任務典型週期

Ivy 任務週期圖

完整建構檔範例

<project xmlns:ivy="antlib:org.apache.ivy.ant" name="sample" default="resolve">
  <target name="resolve">
    <ivy:configure file="../ivysettings.xml" />
    <ivy:resolve file="my-ivy.xml" conf="default, myconf" />
  </target>

  <target name="retrieve-default" depends="resolve">
    <ivy:retrieve pattern="lib/default/[artifact]-[revision].[ext]" conf="default" />
  </target>
  <target name="retrieve-myconf" depends="resolve">
    <ivy:retrieve pattern="lib/myconf/[artifact]-[revision].[ext]" conf="myconf" />
  </target>
  <target name="retrieve-all" depends="resolve">
    <ivy:retrieve pattern="lib/[conf]/[artifact]-[revision].[ext]" conf="*" />
  </target>
  <target name="deliver" depends="retrieve-all">
    <ivy:deliver deliverpattern="distrib/[artifact]-[revision].[ext]"
      pubrevision="1.1b4" pubdate="20050115123254" status="milestone" />
  </target>
  <target name="publish" depends="deliver">
    <ivy:publish resolver="internal"
      artifactspattern="distrib/[artifact]-[revision].[ext]"
      pubrevision="1.1b4" />
  </target>
</project>

所有 Ivy 任務在後續頁面詳細介紹。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved