ivy的配置和使用是怎样的

技术ivy的配置和使用是怎样的本篇文章给大家分享的是有关ivy的配置和使用是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。maven很强大,但也有令人

这篇文章是关于常春藤的配置和使用。边肖觉得很实用,所以分享给大家学习。希望你看完这篇文章能有所收获。我们就不多说了。让我们和边肖一起看看。

Maven很强大,但也有它的烦恼。看到艾薇似乎正在成熟,试着看看这个小东西是如何表现的。毕竟背后有那只强大的蚂蚁。

一、下载安装

从http://ant.apache.org/ivy/,官网下载到最新的官方版本ivy2.0.0,选择有依赖关系的包。

安装ivy之前请先安装ant,因为Ivy是基于ant的;根据艾薇的版本选择蚂蚁的版本。

下载地址:http://mirrors.tuna .清华. edu.cn/Apache//ant/ivy/2 . 4 . 0/Apache-ivy-2 . 4 . 0-bin-with-deps . tar . gz。

参考官网安装,解压下载的ivy安装包,然后将ivy的jar文件复制到ant的lib目录(ANT_HOME/lib)。将系统属性IVY_HOME设置为IVY的安装目录,如D:\ivy2.4.0。

二.设置工作目录

Ivy使用“ivy.default.ivy.user.dir”作为工作目录,ivy通过以下方式确认目录的具体路径:

1.查找变量ivy.default.ivy.user.dir

2.如果没有找到,寻找变量ivy.home

3.如果您还没有找到它,请查找变量user.home,然后使用user.home/.ivy目录。

在没有特殊设置的默认安装之前,前两个变量不存在,所以ivy将使用user.home作为默认工作目录。

Ivy使用缓存目录存储缓存文件,Ivy通过以下方式确认目录的具体路径:

1.查找变量ivy.cache.dir

2.如果找不到,在没有特殊设置的情况下使用ivy.default.ivy.user.dir/cache的默认安装之前,以前的ivy.cache.dir变量不存在,所以ivy将使用ivy.default.ivy.user.dir/cache.因为ivy.default.ivy.user.dir默认使用user.home在这种情况下,最终的结果是使用user.home/cache目录。

显然,修改默认工作路径的方法只能通过上面提到的几个变量值来设置。例如,您需要将ivy.default.ivy.user.dir设置为特定的目录,而不是使用当前操作系统的user.home路径。对于ivy,可以设置ant属性。例如,修改build.xml文件并添加以下内容

属性名=' ivy.default.ivy.user.dir '值=' d : \ ivy \ user dir '/这样一来,工作路径会被修改过去,缓存目录也会发生变化,从而避免了重新安装操作系统/安装多个操作系统等时对当前操作系统和用户的依赖。

因为build.xml文件通常是一个项目文件,需要提交给svn、git等版本控制系统,所以不适合直接在里面写路径。一旦修改了,就需要更改所有项目的build.xml,不同的开发人员需要相同的路径,这是不合理的。考虑到ant可以轻松读取系统环境变量,它可以使用环境变量来定义特定的路径,并且ant只使用环境变量:

设置环境变量env . ivy . default . ivy . user . dir=d : \ ivy \ user dir

build.xml中的引用如下:

属性环境='env'/

属性名=' ivy.default.ivy.user.dir '值=' $ { env . ivy . default . ivy . user . dir } '/以上目录使用规则可以直接看到ivy的源代码,非常清晰。org . Apache . ivy . core . settings . IvySettings . ivy settings . ivy settings中的ivy settings()的构造函数非常清晰。

三.配置文件路径ivy使用变量名ivy.settings.file来设置配置文件路径。由于没有找到相关的设置文档,我们只需打开源文件查看代码。

在org . Apache . ivy . ant . ivyantsettings类中,函数defineDefaultSettingFile()中有相关代码:

1.找到变量名ivy

.settings.file

    settingsFileName = variableContainer.getVariable("ivy.settings.file");

    2.可能的路径,依次是项目BaseDir(应该是ant的build.xml文件中定义的BaseDir,通常是项目根路径),当前路径,很奇怪居然不查找诸如ivy.default.ivy.user.dir的路径,甚至连ivy.settings.dir都不去查找,莫名其妙

    File[] settingsLocations = new File[] {

                new File(getProject().getBaseDir(), settingsFileName),

                new File(getProject().getBaseDir(), "ivyconf.xml"), 

                new File(settingsFileName),

                new File("ivyconf.xml") 

        };

    3. 上面四个路径依次查找

        for (int i = 0; i < settingsLocations.length; i++) {

            file = settingsLocations[i];

            verbose("searching settings file: trying " + file);

            if (file.exists()) {

                break;

            }

        }

    4. 如果没有找到,则取默认设置

    if (!file.exists()) {

                info("no settings file found, using default...");

                file = null;

                url = IvySettings.getDefaultSettingsURL();

        }

    默认配置文件是ivy.jar包中的org.apache.ivy.core.settings.ivysettings.xml,如果不做任何相关配置,一般都使用这个默认配置。

    了解ivy是怎么工作了,想配置就方便了。比如如果希望为当前项目单独设置,则可以:

    1. 在当前项目BaseDir目录下放置ivyconf.xml文件

        new File(getProject().getBaseDir(), "ivyconf.xml")

        这个是最简单的方案了,奇怪的是这里的文件名是ivyconf.xml,很郁闷,我用ivysettings.xml测试了好久都不生效,原来根结在这个地方。风格不统一,估计是新老版本兼容问题,幸亏可以看到源代码。

    2. 或者同时设置ivy.settings.file为要求的文件名,将该文件放置在项目BaseDir目录下

        new File(getProject().getBaseDir(), settingsFileName)

        比如设置ivy.settings.file=ivysettings.xml,这样可以和jar包中的文件名保持一致。似乎用处不大?

    3. 为了让所有项目统一使用相同配置,可以考虑直接将ivy.settings.file指向一个公共的配置文件

        比如设置ivy.settings.file为${env.ivy.default.ivy.user.dir}/ivysettings.xml

        这样就不必每次都重复设置相同的内容,比如ivy的public repository,默认是使用maven2的官网仓库,我们可以修改为使用maven的本地私库,如nexus之类。

    build.xml中的设置:

    <property environment="env"/>

    <property name="ivy.default.ivy.user.dir" value="${env.ivy.default.ivy.user.dir}" />

    <property name="ivy.settings.file" value="${ivy.default.ivy.user.dir}/ivysettings.xml" />

四. 和nexus集成

    1. ivysettings.xml

        将原有的

         <include url="${ivy.default.settings.dir}/ivysettings-public.xml"/>

        修改为

        <include url="./ivysettings-public.xml"/>

    2. 在ivysettings.xml相同目录下放置ivysettings-public.xml文件

        实际从ivy.jar包中copy出对应文件,然后修改

        <ibiblio name="public" m2compatible="true" root="http://192.168.0.30:8081/nexus/content/groups/public/"/>

        注意这里的name="public"不能改,否则会报错。

        有关public, shared, private三个repository的资料,请参考官方文档,说明的很细致

        http://ant.apache.org/ivy/history/latest-release/tutorial/defaultconf.html

总结:

1) install ant1.6+

    set env ANT_HOME=D:\ant

    set Path, add ANT_HOME/bin

2) install ivy

    set env IVY_HOME=D:\ivy\ivy200

    set env ivy.default.ivy.user.dir=D:\ivy\userdir

3) config ivy for all projects and users

    1. copy ivysettings.xml to userdir

    2. copy ivysettings-public.xml to userdir

    3. open ivysettings-public.xml, edit m2 URL

4) add ivy setting to ant build.xml of project

    <property environment="env"/>

    <property name="ivy.default.ivy.user.dir" value="${env.ivy.default.ivy.user.dir}" />

    <property name="ivy.settings.file" value="${ivy.default.ivy.user.dir}/ivysettings.xml" />

ivy.default.ivy.user.dir是不能作为linux下的环境变量名的!只好修改为IvyDefaultUserDir。

    即:

    set env IvyDefaultUserDir=D:\ivy\userdir

    <property environment="env"/>

    <property name="ivy.default.ivy.user.dir" value="${env.IvyDefaultUserDir}" />

    <property name="ivy.settings.file" value="${ivy.default.ivy.user.dir}/ivysettings.xml" />

以上就是ivy的配置和使用是怎样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/81170.html

(0)

相关推荐

  • 外键约束

    技术外键约束 外键约束外键:外键约束是指表中某个字段的值依赖于另一张表中某个字段的值,而被依赖的字段必须且有主键约束或者唯一约束。
    被依赖的表我们通常称之为父表或者主表,设置外键约束的表称为字表或从表。

    礼包 2021年12月15日
  • 【CSS】让图片在高宽固定的div里水平垂直都居中的三种办法

    技术【CSS】让图片在高宽固定的div里水平垂直都居中的三种办法 【CSS】让图片在高宽固定的div里水平垂直都居中的三种办法效果:实现一:绝对定位加精算!DOCTYPE html
    html
    head

    礼包 2021年12月21日
  • 设计模式06-适配器模式,Adapter)

    技术设计模式06-适配器模式,Adapter) 设计模式06-适配器模式(Adapter)对适配器模式的功能很好理解,就是把一个类的接口变换成客户端所能接受的另一种接口,从而使两个接口不匹配而无法在一起

    礼包 2021年10月28日
  • Python数据结构与算法中的散列是什么

    技术Python数据结构与算法中的散列是什么本篇内容主要讲解“Python数据结构与算法中的散列是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python数据结构与算法

    攻略 2021年11月29日
  • androidmonkey测试工具的完善思路(androidmonkey教程)

    技术Android中的monkey实战是怎样的这篇文章将为大家详细讲解有关Android中的monkey实战是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。环境介绍

    攻略 2021年12月24日
  • 考研复试什么时候,研究生面试时间多长

    技术考研复试什么时候,研究生面试时间多长我是研路有我,我来回答你的问题考研复试什么时候。研究生面试一般在15分钟左右!我作为一名曾经的考研生,也是经历了面试。我当时面试的时候,大概看了一下时间,每位同学的面试时间平均在1

    生活 2021年10月25日