Maven--几个需要补充的问题(三)
前两篇由于篇幅太长,为了给读者理解方便,这篇集中解决前两篇遗留下的几个问题,算是对之前的一个补充,大概归纳了一下,总共有四个问题,下面来一一解决。
一、 在第一篇文章中,直接修改config下的setting文件是最佳方式吗?远程仓库配置在pom中,还是setting中?
第一篇中把远程仓库信息直接配置在了config文件夹下的setting中,其实,Maven包括两个setting,一个是我们刚才看到
的setting,还有另一个在C:\Users\username\.m2\settings.xml,打开eclipse—preferences—Maven—UserSetting就可以看到了。一般情况下,config下的setting作为全局的配置,一个项目组就用这个配置,因此可以把共用的配置放在这个setting中,而C盘下的setting是一个本地的配置,也就是用户自己的配置,可以做一些自定义的配置,据说可以配置用户信息,因此我觉着把远程仓库直接配置在config应该是最佳的方式。
其实远程仓库可以向下图这样,直接配置在pom中的,但是一般不建议这么做,因为pom是针对每个项目的,而setting是
针对项目组,对于多项目,配置在setting中再合适不过。
二、 Setting中的profile是什么?
构建项目时可能会遇到在测试(如单元测试)、开发、模拟、生产等不同环境下需要不同配置(properties、xml)或资源
(jpg、png、mp3)的情况。又或者针对不同的操作系统(如 Windows,Linux)需要为某个配置设定不同的文件路径。可见,在不同的软件开发生命周期阶段、不同的最终客户(用户)环境、不同的运行平台都有可能需要不同配置或资源的情况。因此,用profile来解决此问题,在特定的情况下激活其配置,Maven中profile有四种激活方式:根据环境自动激活;通过命令行参数激活;配置默认自动激活;配置settings.xml文件 profile激活。由此可见,我们用的是最后一种激活方式,关于激活方式就不多讲了,不然又得需要一篇。http://juvenshun.iteye.com/blog/208714
三、 配置远程仓库中,mirror(镜像)是什么?
举个例子,比如你给张三打电话,发现张三把电话设置了呼叫转移,转到了李四,并且李四能完成张三的功能,因此,这个李四就是张三的一个镜像。第一篇和第二篇都接触了镜像,在这主要说一下第一篇中的镜像,在第一篇中配置的http://127.0.0.1:8080/nexus/content/groups/public/就是所有仓库的镜像,因此,客户端所有的请求都会转发到此地址。该例中<mirrorOf>的值为星号,表示该配置是所有Maven仓库的镜像,如果该镜像仓库需要认证,则配置一个Id为public的<server>即可。为了满足一些复杂的需求,Maven还支持其他的镜像配置:
1.<mirrorOf>*</mirrorOf>:匹配所有远程仓库。
2.<mirrorOf>external:*</mirrorOf>:匹配所有远程仓库,使用localhost的除外,使用file://协议的除外。也就是说,匹配所有不在本机上的远程仓库。
3.<mirrorOf>repo1,repo2</mirrorOf>:匹配仓库repo1和repo2,使用逗号分隔多个远程仓库。
4.<mirrorOf>*,!repo1</miiroOf>:匹配所有远程仓库,repo1除外,使用感叹号将仓库从匹配中排除。
需要注意的是,由于镜像仓库完全屏蔽了被镜像仓库,当镜像仓库不稳定或者停止服务的时候,Maven仍将无法访问被镜像仓库,因而将无法下载构件。
四、 第二篇文章讲了如何构建私服,那如何上传自己的构建呢?
这里我就直接引用一位网友的内容了,写的不错,截图也太麻烦,上传自己的构建,也就是往3rdparty(宿主仓库)上传,
所谓自定义构件指的是无法从Maven的中央仓库进行下载的构建。本人在此选用的是最简单方便的手动上传构件(当然上传构件至宿主仓库还有一些方式)。单击3rdparty(宿主仓库)的ArtifactUpload选项,我们首先来上传一个基于Maven项目的自定义构件,如下图:
最后别忘记了添加构件:
如果你的构件不是基于Maven的呢?那么你可以选择GAVParameters属性:
按照上述步骤,就成功将自定义构件上传至宿主仓库中了。
Maven--几个需要补充的问题(三)的更多相关文章
- Maven中解决jar包冲突的三种方式
首先我们在idea中创建一个maven工程,我们只关注pom.xml以及External Libraries中导入的jar包 导入spring-beans.jar <dependency> ...
- Maven 依赖调解源码解析(三):传递依赖,路径最近者优先
本文是系列文章<Maven 源码解析:依赖调解是如何实现的?>第三篇,主要介绍依赖调解的第一条原则:传递依赖,路径最近者优先.本篇内容较多,也是开始源码分析的第一篇,请务必仔细阅读,否则后 ...
- Maven 工程下 Spring MVC 站点配置 (三) C3P0连接池与@Autowired的应用
Maven 工程下 Spring MVC 站点配置 (一) Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作 前两篇文章主要是对站点和数据库操作配置进行了演示,如果单 ...
- Maven入门-运行struts项目进行测试(三)
maven运行struts项目进行测试: 在入门二中已经导入struts的jar包. 此时的pom.xml文件 <project xmlns="http://maven.apache. ...
- Spring,Struts2,MyBatis,Activiti,Maven,H2,Tomcat集成(三)——H2,MyBatis集成
1.配置h2,连接池,MyBatis Maven依赖: <!-- spring与数据库访问集成(非Hibernate) --> <dependency> <groupId ...
- Java Maven项目的一些补充
写在前面 在多人开发团队中,规范是非常重要的.To explain it,就像是秦始皇统一货币.度量衡一样,主要的目的是为了降低项目技术架构差异所带来的交流成本,这样开发者就可以尽可能把注意力放在业务 ...
- maven项目引入外部jar包的三种方式
方式1:dependency 本地jar包 <dependency> <groupId>com.hope.cloud</groupId> <!--自定义--& ...
- Jenkins+maven+gitlab自动化部署之Jenkins部署(三)
本章开始正式搭建Jenkins: 公司现在使用的jenkins版本是2.150.3,但是本次实验安装的版本我们选择最新的 2.164.3(当然,当你阅读这篇文章时,此版本已经不是最新),jenkins ...
- 【项目管理和构建】十分钟教程,eclipse配置maven + 创建maven项目(三)
[项目管理和构建]十分钟教程,eclipse配置maven + 创建maven项目(三) 上篇博文中我们介绍了maven下载.安装和配置(二),这篇博文我们配置一下eclipse,将它和maven结合 ...
随机推荐
- Jquery的一些取值
//获取当前节点的html代码(包括当前节点),prop用于获取与设置Html元素的原生属性 $("#tmpMsgObj").prop("outerHTML") ...
- UVA1471( LIS变形)
这是LIS的变形,题意是求一个序列中去掉某个连续的序列后,能得到的最长连续递增序列的长度. 用DP的解法是:吧这个序列用数组a来记录,再分别用两个数组f记录以i结尾的最长连续递增序列的长度,g[i]记 ...
- A Byte of Python 笔记(5)函数:定义、形参、局部变量、默认参数、关键参数
第7章 函数 函数是重要的程序段.它们允许你给一块语句一个名称,然后你可以在程序的任何地方使用这个名称任意多次地运行这个语句块.这被称为 调用 函数. 定义函数 函数通过 def 关键字定义.def ...
- WORD 无格式粘贴 2003 2007 MacOS2011
2003 打开Word窗口,依次点击“工具----宏----Visual Basic编辑器”,打开“Microsoft visual Basic”窗口,在左侧“工程”栏选中“Normal”工程,点击“ ...
- 转:什么是FOUC?如何避免FOUC?
今天了解了一个新的名词叫做 FOUC 浏览器样式闪烁,之前也听说过一些类似的东西,比如样式突变等等,但这东西竟然有学名的.. 什么是FOUC(文档样式短暂失效)?如果使用import方法对CSS进行导 ...
- Hbuilder 常用快捷键汇总
朋友推荐用Hbuilder编辑器,看了下Hbuilder官网和那视频,感觉牛逼哄哄的, 自己也就体验了一下,打开Hbuilder的快捷键列表,每个快捷键都体验了一下,以下展示出来的,每一个都是精华,每 ...
- $.getJSON(url,function success(){})回调函数不起作用
有个问题好久没有解决,就是: $.getJSON(url,function success(){}) 其中的回调函数,总也不执行. 以前也做过,但那都是CTRL+C,CTRL+V,也没有细想. 目标就 ...
- Libev学习笔记3
设置完需要监听的事件之后,就开始event loop了.在Libev中,该工作由ev_run函数完成.它的大致流程如下: int ev_run (EV_P_ int flags) { do { /* ...
- c语言编写经验逐步积累4
寥寥数笔,记录我的C语言盲点笔记,仅仅为以前经历过,亦有误,可交流. 1.逻辑表达式的使用 取值 = 表达式 ? 表达式1:表达式2: 比方x = y > z ? y:z 2."+,- ...
- weblogic的ejb远程调用
这是一篇对EJB远程调用的简单范例. 1.环境:win7 + weblogic 12c + myeclipse8.5 2.目的:实现在myeclispe中对weblogic中EJ ...