- 浏览: 584560 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (188)
- java (14)
- web (14)
- web service (3)
- 杂谈 (14)
- Version Control (13)
- software test (30)
- linux (17)
- database (3)
- distributed storage and computing (1)
- ejb (7)
- project building (46)
- spring & IOC (2)
- Thread (2)
- xml (2)
- tool software (0)
- [网站分类]1.网站首页原创Java技术区(对首页文章的要求: 原创、高质量、经过认真思考并精心写作。BlogJava管理团队会对首页的文章进行管理。) (0)
- project manager (9)
- OSGI (1)
- nosql (3)
最新评论
-
sp42:
好搞笑
你懂不懂xml! (2) -
cherishmmo2004:
感觉你们都很牛掰,我们做的一个运维平台也是用karaf的,用k ...
基于osgi开发大型的企业应用 -
liubey:
“自作聪明”的使用了读写锁,其实只使用ReentrantLoc ...
编码最佳实践(4)--小心LinkedHashMap的get()方法 -
liubey:
你这个代码是sublist后仍然一直持有这个sub的引用,一般 ...
编码最佳实践(5)--小心!这只是冰山一角 -
xiegqooo:
初学maven(5)-使用assembly plugin实现自定义打包
ivy绑定一些默认设置,这使得在通常环境下使用ivy很容易。这个教程,接近于参考文档,解释这些默认设置是什么和他们怎样调整来满足你的需要。
为了完整的理解设置的概念和你可以用它们做什么,我们建议阅读其他和设置相关的教程(如Multiple Resolvers
和 Dual Resolver
)或者设置文件
的参考文档。
1) 概念
默认设置主要是3种仓库组成:
* local / 私有
用户私有的仓库
* shared / 共享
在团队的所有成员之间共享的仓库。
* public / 公共
可以找到大部分模块,尤其是第三方模块的公共仓库.
注意如果你独自工作,local和shared仓库之间的差异不重要,但是需要知道如何识别它们。
现在让我们更详细的描述这些仓库概念的每一个。后面我们会描述如何实际配置它们。
1. local / 私有
当你想做一些事情而不希望被环境中发生的其他任何事情打扰时,私有仓库非常有用。这意味着每当ivy能够在这个仓库中找到模块时,这个模块将被使用,不管其他仓库里的是什么。
举例,如果你有一个模块,声明依赖于模块foo的latest.integration修订版本,然后当foo的一个修订版本在私有仓库中被发现,这个版本将被使用,即使在其他仓库中有一个更新的修订版本可用。
这可能让你们中的某些人困惑,但是想象你不得不在一个项目中实现一个新的特性,并且为了达到这个目标你需要修改两个模块:你在模块foo内增加一个新的方法,并在模块bar中利用。然后如果你公布模块foo到你的私有仓库,你可以保证在你的bar模块中得到它,即使有其他人在shared仓库中公布了foo的一个新的修订版本。
但是小心,当你完成你的开发并且公布它到共享仓库时,你将不得不清理你的本地仓库以便从在共享仓库中公布的新版本中获益。
同样注意,在本地仓库中找到的模块必须是完整的,换句话说,他们必须同时提供模块描述符和发行的制品。
2. shared / 共享
如它的名字建议的,共享仓库的目标是在整个开发团队中共享。例如你可以公布你的团队的私有模块,同样你可以放置一些在公共仓库中不能得到的模块(例如sun的jar文件),或者仅仅是不精确(例如坏的或者不完整的模块描述符).
注意模块可以在共享仓库和公共仓库中分隔:例如你可以在共享仓库中有模块的描述符而制品在公共仓库中。
3. public / 公共
大多数模块可以在公共仓库中找到,但是某些时候缺少你要的信息。这通常是一个只能通过internet连接访问的仓库,虽然这不是强制。
2) 安装仓库
现在我们已经看到三个仓库中的每一个的目标,让我们看怎样安装他们并配置以便满足你的需求。
首先,几个仓库在你的文件系统中使用同一个root。被作为${ivy.default.ivy.user.dir}引用,默认为在你的user home下的.ivy2 目录。
注意几个东西可以通过设置ivy变量来完成。为了不定义你自己的ivysettings.xml文件而设置他们,你可以:
* 在任何ivy调用前,在你的构建文件中设置一个ant属性,如果你通过ant使用ivy
* 设置一个环境变量,如果你通过命令行使用ivy
举例:
< property name ="ivy.default.ivy.user.dir" value ="/path/to/ivy/user/dir" />
< ivy:resolve />
</ target >
现在我们将展示如何为不同类型的仓库覆盖默认值,注意你可以在下面的默认设置的细节中发现这些默认值是什么。
1. Local
默认,本地仓库位于${ivy.default.ivy.user.dir}/local.这通常是一个不错的地方,但是如论如何你可能需要修改它。没有问题,你只需要设置下面的ivy变量到你想使用的目录:
例如:
如果你已经有了一些你想作为你的本地仓库来使用的东西,你可能同样想修改这个仓库的布局。再一次,有两个变量可用于此:
给出查找ivy文件的样式
给出查找制品的样式
例如:
ivy.local.default.ivy.pattern=[module]/[revision]/ivy.xml
ivy.local.default.artifact.pattern=[module]/[revision]/[artifact].[ext]
2. Shared
默认,本地仓库位于${ivy.default.ivy.user.dir}/shared.如果你独自工作没有问题,但是共享仓库是用来共享的!因此经常需要修改这个目录,并且它通常修改为指向一个网络共享目录。你可以使用:
变量来制定一个新的目录。此外,你也可以通过和本地仓库类似的变量来配置布局。
给出查找ivy文件的样式
给出查找制品的样式
例如:
ivy.shared.default.ivy.pattern=[organisation]/[module]/[revision]/ivy.xml
ivy.shared.default.artifact.pattern=[organisation]/[module]/[revision]/[artifact].[ext]
3. Public
默认,公共仓库是出于m2 兼容模式下的ibiblio(换句话说,maven2的公共仓库).
这个仓库的优势在于提供了很多模块并且大部分的模块都有metadata。matadata的质量不是都很完美,但是它是一个好的开始:使用类似ivy这样的工具并从间接依赖管理的能力中获益。
尽管ivy容易使用,我们建议阅读最佳实践来理解使用公共的、无法管理的仓库的正面和负面。
在1.4版本中ivy使用ivyrep作为默认的解析器,如果你想恢复成这个方式,可以设置ivy.14.compatible=true 作为一个ant属性。
3) 走的更远
好,我们已经看到修改这三个主要仓库的设置是很容易的。但是在web服务器上我的共享仓库是什么?如果你不想使用maven2 仓库作为公共的仓库。或者其他...
没有问题,ivy富有弹性并且可以用非常特殊的设置进行配置以满足你的需要和环境。但是在考虑你自己的设置前,我们建议阅读后面的内容,你将要学习如何修改默认设置的一部分并调整其他。
但是在解析如何做之前,你需要对ivy默认是如何配置的有一个简短的概述。
默认,ivy使用被打包在ivy的jar包中的ivysettings.xml来配置。这里是设置文件:
< 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的一部分而直接使用其他。例如,如果你想定义你自己的公共解析器,你将只需要像这样通过ivysettings来配置ivy:
< settings defaultResolver ="default" />
< include url ="http://myserver/ivy/myivysettings-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包含被修改为包含自产的公共解析器。注意同样可以像这样使用,感谢${ivy.default.settings.dir} 是一个变量的事实,这个变量经常设置为ivy默认设置文件所在的地方(换句话说,被打包在jar中)。为了完成这个例子,你必须写你自己的ivysettings文件(那样你在这里例子中你将使得http://myserver/ivy/myivysettings-public.xml可用)来定义你自己的公共解析器。例如:
< 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 >
现在为了正确地从默认设置中获益,你需要做的最后一件事情是每个包含的ivysettings文件的内容:
ivysettings-public.xml
< resolvers >
< ibiblio name ="public" m2compatible ="true" />
</ resolvers >
</ ivysettings >
ivysettings-shared.xml
< 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 >
ivysettings-local.xml
< 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 >
ivysettings-main-chain.xml
< resolvers >
< chain name ="main" dual ="true" >
< resolver ref ="shared" />
< resolver ref ="public" />
</ chain >
</ resolvers >
</ ivysettings >
ivysettings-default-chain.xml
< resolvers >
< chain name ="default" returnFirst ="true" >
< resolver ref ="local" />
< resolver ref ="main" />
</ chain >
</ resolvers >
</ ivysettings >
在这里,你有足够的提示来配置你想要的方式...查阅设置文档
来看你想要做的是不是可能,并继续前行!
发表评论
-
搜索maven依赖的网站推荐
2011-12-02 16:04 4327使用maven填写依赖的时候,常会遇到需要查一下gro ... -
hudson中subversion HEAD check out 的问题及疑惑
2010-09-30 10:56 40近期发现一个问题,hudson执行任务时,经常不能获取 ... -
你走你的阳光道,我走我的独木桥:整合ant ivy 和testng
2010-05-31 16:11 2088近期自己折腾自己,放着正统的maven + jun ... -
slf4j1.6.0-RC0和logback的0.9.20版本不兼容
2010-04-26 08:54 3522今天,尝试使用slf4j + logback的黄金组合,结果发 ... -
fisheye2.2.1 & Crucible 2.2.1 安装配置笔记
2010-04-27 16:48 31941) 下载 从atlassian网站 ... -
让ivy支持maven的classifier属性
2009-10-15 01:56 3194在maven中,对于一个依赖,除了groupId,ar ... -
ivy教程(1)-目录
2009-09-21 23:57 2960学习的最佳方式是实践!这是ivy教程将帮助你做到的 ... -
ivy教程(2)-快速开始
2009-09-22 11:48 3071在这个例子中,我们将看到使用ivy的一个最简单的方 ... -
ivy教程(4)-多解析器
2009-09-25 15:28 1811这个例子演示模块是如何被多解析器获得的。使用多解析 ... -
ivy教程(5)-双重解析器
2009-09-27 20:58 1732在一些情况下,会发生这样的事情:你的模块描述符(ivy ... -
ivy教程(6)-项目依赖
2009-09-29 23:32 3014这个示例将举例说明在两个项目之间的依赖。 depen ... -
ivy教程(7)-在多项目环境下使用ivy
2009-10-03 11:48 2379在上一个教程中,你已 ... -
ivy教程(8)-使用ivy模块配置
2009-10-04 10:15 2679这个教程介绍ivy文件中的模块配置的使用。ivy模块配置事实上 ... -
ivy教程(9)-架设仓库(1)-介绍
2009-10-04 13:42 1861install任务让你从一个仓库复制一个模块或者模 ... -
ivy教程(10)-架设仓库(2)-基础仓库复制
2009-10-04 15:04 3064在这个步骤中我们使用install任务来从mave ... -
ivy教程(11)-架设仓库(3)-使用命名空间
2009-10-09 21:04 2268现在你已经看到从一个已经存在的仓库创建你自己的仓库是如何的简单 ... -
ivy教程(12)-更多例子
2009-10-09 21:29 1829如果你已经成功的跟随并理解了所有的教程,可能你还是需要得到更好 ... -
ivy中文参考文档(21)-ant任务(9)-post resolve tasks
2009-09-15 14:17 14731) post resolve tasks ... -
ivy中文参考文档(20)-ant任务(8)-cachefileset
2009-09-03 23:11 13991) cachefileset 为配置构建一个有iv ... -
ivy中文参考文档(18)-ant任务(6)-deliver
2009-08-31 22:22 14731) deliver 交付当前模块的解析好的描述符, ...
相关推荐
3. **Intel酷睿i7-4700MQ**:这是一款基于Ivy Bridge架构的四核八线程移动处理器,适用于中高端笔记本。在黑苹果环境中,需要确保其兼容性和性能优化。 4. **Intel HD4600显卡**:这款集成显卡在很多非Apple笔记本...
基于transUnet和swinUnet的医学图像分割项目实验对比,包含完整代码,可以一键运行。评估指标包括dice、iou、recall、precision等
,stm32f030无感foc方案,资料包括原理图,pcb,源程序,观测器参数,电流环参数计算表格。
分布式电源DG选址定容优化及帕累托最优解集的粒子群算法研究,多目标粒子群算法 分布式电源 DG 定容选址 网损 成本 电压偏差 通过分布式能源的选址定容确定得到帕累托最优解集,然后选择最优值进行分析,程序采用改进粒子群算法, ,核心关键词:多目标粒子群算法; 分布式电源选址定容; 网损; 成本; 电压偏差; 帕累托最优解集。,改进粒子群算法在分布式电源选址定容中的应用:优化网损与成本,考虑电压偏差
交变磁场感应材料对沥青路面温度影响的研究,交变磁场下含感应材料沥青路面温度 ,交变磁场; 感应材料; 沥青路面; 温度; 变化; 加热效率,交变磁场对含感应材料沥青路面温度的影响研究
基于Comsol模拟的三层顶板随机裂隙浆液扩散模型:考虑重力影响的瞬态扩散规律分析,Comsol模拟,考虑三层顶板包含随机裂隙的浆液扩散模型,考虑浆液重力的影响,模型采用的DFN插件建立随机裂隙,采用达西定律模块中的储水模型为控制方程,分析不同注浆压力条件下的浆液扩散规律,建立瞬态模型 ,Comsol模拟; 随机裂隙浆液扩散模型; 浆液重力影响; DFN插件; 达西定律模块储水模型; 注浆压力条件; 浆液扩散规律; 瞬态模型,Comsol浆液扩散模型:随机裂隙下考虑重力的瞬态扩散分析
对于Sqlserver数据库只是提供了简单的图形化的导出导入工具,在实际的开发和生产环境不太可能让用户在图形化的界面选择移行的对象,进行移行。 我们在数据库的移行中也遇到这种问题,需要提供一个工具给客户使用。所以我们开发了针对SQLServer数据库的cmd形式导入导出的工具。在长期的实践中不断完善,基本可以实现Oracle的导入导出工具的80%的功能,也比较的稳定。有需要的可以下载使用,也可以提供定制化的服务
内容概要:本文介绍了DeepSeek模型在不同平台上部署的方法。首先阐述了基于Ollama的本地部署,包括Ollama的安装、模型拉取以及交互模式的使用。接着讲解了DeepSeek在移动设备(iOS和Android)上的部署细节:iPhone需要通过Safari安装快捷指令,配置API Key并通过快捷指令测试运行;Android则借助Termux安装必要组件,并手动搭建Ollama环境以加载和测试模型。最后详细叙述了基于Open WebUI部署的方式,涉及Ollama、Docker Desktop及Open WebUI的安装流程及其之间的配合使用来最终达成模型的成功部署。 适用人群:面向有兴趣了解或者实际操作DeepSeek模型跨平台部署的技术开发者、研究人员以及AI爱好者。 使用场景及目标:适用于希望利用DeepSeek模型快速构建本地化应用程序、开展实验研究的用户;具体目标为掌握DeepSeek模型在桌面系统(如Linux、macOS、Windows)、iOS和Android智能手机以及云端WebUI界面上的不同部署手段和技术。 其他说明:对于每种类型的部署都提供了详细的步骤指导,旨在帮助使用者顺利完成所需工具和环境的安装,并确保模型能够正常工作。文中给出的具体链接和命令行脚本,有助于降低初次接触者的上手难度,提升部署效率和成功率。此外,还强调了一些重要的配置注意事项,例如正确输入API key以及对Ollama的初始化检查等。
,FOC 无感 混合磁链观测器 电机控制 代码 PMSM MiniDD(直驱)电机变频无感程序,包含偏心,重量,共振等感知算法,所有算法都不基于库函数,MCU底层配置完全手写
nodejs010-nodejs-cmd-shim-1.1.0-4.1.el6.centos.alt.noarch.rpm
基于S7-200 PLC的交通灯倒计时控制及组态王界面实现原理图解析,S7-200 PLC和组态王交通灯带倒计时控制 923 47 带解释的梯形图接线图原理图图纸,io分配,组态画面 ,S7-200 PLC; 交通灯; 倒计时控制; 组态王; 梯形图接线图; IO分配; 组态画面,"S7-200 PLC与组态王交通灯倒计时控制:梯形图原理及IO分配详解"
西门子四轴卧加后处理系统:828D至840D兼容,四轴联动高效加工解决方案,支持图档处理及试看程序。,西门子四轴卧加后处理,支持828D~840D系统,支持四轴联动,可制制,看清楚联系,可提供图档处理试看程序 ,核心关键词:西门子四轴卧加后处理; 828D~840D系统支持; 四轴联动; 制程; 联系; 图档处理试看程序。,西门子四轴卧加后处理程序,支持多种系统与四轴联动
FPGA篮球赛事24秒倒计时计时器设计与实现(基于Verilog与VHDLL的优化对比),基于fpga篮球倒计时24s。 verilog和vhdl两个版本 ,基于FPGA篮球倒计时24s; Verilog版本; VHDL版本,FPGA篮球比赛倒计时24秒系统:Verilog与VHDL双版本实现
论生成式AI在大学生学习中的应用与伦理问题.pdf
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
"S7-200plc与MCGS智能居家控制系统的深度融合:组态画面、IO分配与梯形图接线图原理详解",No.63 S7-200plc和 MCGS智能居家控制系统组态 带解释的梯形图接线图原理图图纸,io分配,组态画面 ,核心关键词:S7-200plc; MCGS智能居家控制系统; 梯形图接线图原理图; io分配; 组态画面。,"S7-200 PLC与MCGS智能居家系统组态及梯形图原理图解析"
方便暖通工程师及板换用户了解艾齐尔板式换热器选型计算,免费使用。
《四层三列堆垛式立体库控制系统:带解释的梯形图接线原理图及IO分配与组态画面详解》,4x3堆垛式立体库4层3列四层三列书架式立体库控制系统 带解释的梯形图接线图原理图图纸,io分配,组态画面 ,立体库; 堆垛式; 控制系统; 梯形图; 接线图; 原理图; IO分配; 组态画面,"立体库控制系统原理图:四层三列堆垛式书架的IO分配与组态画面"
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx