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)

相关推荐

  • Android总结

    技术Android总结 Android总结第一章
    一.什么是Android
    安卓(Android)是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Googl

    礼包 2021年11月13日
  • python单元测试怎样开展(pytest如何实现自动化测试)

    技术Pyhon中如何实现单元测试这篇文章将为大家详细讲解有关Pyhon中如何实现单元测试,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。文件calculator.py#计算器类
    clas

    攻略 2021年12月17日
  • TensorRT——INT8推理

    技术TensorRT——INT8推理 TensorRT——INT8推理原理为什么要使用INT8推理:更高的吞吐量/处理的fps提高以及更低的内存占用(8-bit vs 32-bit)
    将FP32模型转换

    礼包 2021年11月12日
  • 为何建议关闭RocketMQ预热配置

    技术为何建议关闭RocketMQ预热配置这期内容当中小编将会给大家带来有关为何建议关闭RocketMQ预热配置,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。前言RocketMQ提供了一

    攻略 2021年11月17日
  • 喵喵喵是什么意思,猫往人身上蹭是什么意思

    技术喵喵喵是什么意思,猫往人身上蹭是什么意思猫咪蹭人可是有着很丰富的含义呢,各位铲屎官快点跟着喵大侠来了解一下吧喵喵喵是什么意思。1、如果猫咪用小脑袋的一侧、身体的一侧,或者是用尾巴对着你蹭来蹭去,这是给你打个招呼呢!一

    生活 2021年10月26日
  • 龙眼肉的做法,四川特色菜蒸龙眼肉是怎么做的

    技术龙眼肉的做法,四川特色菜蒸龙眼肉是怎么做的药用龙眼肉的做法: 配方:  龙眼肉50~100G
    制法:  龙眼肉置碗内,隔水蒸熟。
    功能:  补心安神,养血益脾。
    主治:  心脾两虚之心悸失眠,多梦易惊。

    生活 2021年10月31日