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