maven培训小课堂一_第1页
maven培训小课堂一_第2页
maven培训小课堂一_第3页
maven培训小课堂一_第4页
maven培训小课堂一_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Maven小课堂(一()Maven:mirror和repository(五)repositories和pluginRepositories(六)settings.xml配置说明(含mavenoffline作用说明(一)服snapshot快照库和release(二)Nexus(三)Maven:mirror和repositoryRepository(仓库Maven仓库主要有2ocarepostory:存放在本地磁盘的一个文件夹,例如,wndows上默认是C:\Users\{用户名}\.m2\repostory Repository主要有3私服:内网自建的mavenrepostory,其URL其他公共仓库:其他可以互联网公共访问mavenrepostory,例如jbossrepostorymo相当于一个拦截器,它会拦截maveemoeesoy的相关请求,把请求里的emoeeosoy地址,重定向到mror里配置的地此时,BRepostory被称为ARepostory<mrrorOf></mrrorOf>标签里面放置的是要被镜像的RepostoryID。为了满足一些复杂的需求,MavenRepository与其实,mrror表示的是两个Repostory之间的关系,在maven配置文件(settng.xm)里配置了 </mrrors>,即定义了两个Repostory<mrror>.</mrror></mrrors>,让B库成为A库的mrror,即可不用更改项目pom.xm里对于A如果该镜像仓库需要认证,则配置settng.xm中的<server></server>加速MavenPS:Maven如果不配置nexus私服的仓库组,那么我们会在 配置文件里面定义多个仓库,例如中央仓库然后再配置mrror去拦截对应的nexu构件下载,例如我们有中央仓库central(Maen)、第三方仓库(bo)、或者其他仓库other等,那我们mirror可以配置拦截这些名字centra、bo、other等字眼,例如但是我们使用了nexu置即可,例如profileprofileprofe可以让我们定义系列的配置信息,然后指定其激活条件。这样我们就可以定义多个profe,然后每个profe对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果。比如说,我们可以通过profe定义在jdk1.5以上使用套配置信息,在jdk1.5以下使用另外套配置信息;或者有时候我们可以通过操作系统的不同来使用不同的配置信息,比如wndows下是套信息,nux下又是另外 针对于特定项的profe配置我们可以定义在该项的pom.xm 安装录下的中,另种是定义在pom.xm当profe定义在settngs.xm中时意味着该profe是全局的,它会对所有项或者某用户的所有项都产生作用。因为它是全局的,所以在settngs.xm中只能定义些相对而言范围宽泛点的配置信息,比如远程仓库等。而些比较细致点的需要根据项的不同来定义的就需要定义在项的义在<propertes>里面的键值对可以在pom.xm中使用。<repostor<pugnRepostor<dependenc<pug<propert<dstrbut还有bud素下面的子素,主要包括:<defautGoa<fnaMaven给我们提供了多种不同的profe激活方式。比如我们可以使用-P参数显示的激活个profe,也可以根据环境条件的设置让它自动 先看下面Xm<d>profeTest1</<propert<heo>word</he</propert<actvat<actveByDefaut>true</actveByDefau</actvat<d>profeTest2</<propert<heo>andy</he</propertmvnpackagePprofeTest2的时候将激活profeTest2,而这个时候profeTest1将不会被激活。们定义了如下两个profeXm<d>profeTest1</<propert<heo>word</he</propert<d>profeTest2</<propert<heo>andy</he</propert么我们就可以在settngs.xm中定义actveProfes,具体定义如下:Xm<actveProf<actveProfe>profeTest1</actveProf</actveProf考虑这样种情况,我们在actveProfes下同时定义了多个需要激活的profe。这里还拿上面的profe定义来举例,我们定义了同时激活profeTest1和profeTest2。Xm<actveProf<actveProfe>profeTest1</actveProf<actveProfe>profeTest2</actveProf</actveProf从profeTest1和profeTest2我们可以看出它们共同定义了属性heo。那么这个时候我在pom.xm中使用属性heo的时候,它到底取的哪个值呢?是根据actveProfe定义的顺序,后面的覆盖前面的吗?根据我的测试,答案是非也,它是根据profe定义的先后顺序来进行使用-P参数显示的激活个profXm代码<d>profeTest1</<propert<heo>word</he</propert<d>profeTest2</<propert<heo>andy</he</propert那么当我们在进行Maven操作时就可以使用-P参数显示的指定当前激活的是哪个profe了。比如我们需要在对项进行打包的时候使用d为profeTest1的profe,我们就可以这样做:CmdCmd当前操作中该profe将不处于激活状态。根据环境来激活profprofeprofe,也可以根据jdk版本的不同激活不同的profe,等等。Xm代码<d>profeTest1</Xm代码<d>profeTest1</根据操作系统来激活profeXm<d>profeTest1</<actvat<name>Wndows<famy>Wndows</fam<verson>5.1.2600</vers</actvat根据系统属性来激活profeXm<d>profeTest1</<actvat<name>he<vaue>word</va</actvat当是下面的这种定义形式时,profeTest1将在指定了系统属性heo,且其值为任意值的时候被激活。Xm代码<d>profeTest1</<actvat<name>he</actvatXm代码<d>profeTest1</<actvat<f</f</actvatXm代码<d>profeTest1</<actvat<f<mssng>target</mss</f</actvat查看当前处于激活状态的我们可以同时定义多个profe,那么在建立项的过程中,到底激活的是哪个profe呢?Maven激活状态的profe都有哪些,这个指定就是mvnhep:actve-profes。Xm代码<d>profeTest1</<actvat<f<mssng>target</mss</f</actvat<actveProf<actveProfe>profeTest1</actveProf</actveProf(五)repositories和pluginRepositories看下官方文档的说明:Pluginarethemajortyofpugnsthatresdewthncentra.Theothertypeofartfactspugns.Mavenpugnsarethemsevesaspecatypeargumentfordongso).Inanycase,thestructureofthepluginRepositorieseementbockssmartotherepositories(六)settings.xml配置说明(含mavenoffline作用说明文件存放<?<?xmlveson=".0"encodng="UFoo<!<!Maven是否需要和用户交互以获得输入如果Maven需要和用户交互以获得输入,则设置成te,反之则应为false默认为t <nteactveMode>tue</nteact<!<!Maven是否需要使用plugnegst.l文件来管理插件版本如果需要Maven使用文件${usehm}mlugnegstxl来管理插件版本,则设为tue默认为false><usePlugnRegst>false</usePlugnRegst<!<!表示Maven是否需要在离线模式下运行如果构建系统需要在离线模式下运行,则为tue,默认为false当由于网络设置原因或者安全因素,构建服务 <!<!d(goupd)d(goupd)的列表该元素包含plugnGoup组织d(goupd)当我们使用某个插件,并没有在命令行为其提供组织d(goupd)的时候,Maven就会使用该列表默认情况下该列表包含了og.acmnlns和o.odhamo><plugnG<!plugn的组织d(goup <plugnGoup>oodhusoo<lugnG</plugnG<!<!用来配置不同的代理,多代理pofles可以应对笔记本或移动设备的工作环境:通过简单的设置pofled>代理元素包含配置代理时需要的信息<pox代理的唯定义符,用来区分不同的代理元 <d>mpox</ ue则激活代理当我们声明了组代理,而某个时候只需要激活个代理的时候,该元素就可以派上用><!代理的主机名协议://主机名:<!代理的端口协议://主机名:<! </pox<!鉴权密 <!<!为仓库列表配置的下载镜像列表高级设置请参阅镜像设置 <mo<!给定仓库的下载镜 <mo<!该镜像的唯标识 d用来区分不同的 o元 <d>planetmoo</<!镜像名 <!该镜像的URL构建系统会优先考虑使用该URL,而使用默认的服务器 <uwll <!被镜像的服务器的d例如,如果我们要设置了个Maven中央仓库(http://po.anpceg/maven2/)的镜像,就需要将该元素设置成cental这必须和中央仓库的dcental完全致><moOf>cental</mo</mo</molmloes,plugnRepostoes和popetes元素这里的pofle元素只包含这五个子元素是因为这里只关心构建系统这个整体(这正是setts.ml文件的角色定位),而单独的项目对象模型设置如果个settngs中的pofle被激活,它的值会覆盖任何其它定义在POM中或者poflexl中的带有相同d的pofle <pof<!根据环境参数来调整的构件的配置<pof<!该配置的唯标识 <d>test</<!<!自动触发pofle的条件逻辑Actvaton是pofle的开启钥匙如POM中的pofle样,pofle的力量来自于它能够在某些特定的环境中自动使用某些特定的值;这些环境通过actvaton元素指定actvaton元素并不是激活pofle的唯方式settngsl文件中的actvePofle元素可以包含pofle的dpofle也可以通过在命令行,使用P标记和逗号分隔的列表来显式的激活(如,Ptest)><<actvat<!pofle默认是否激活的标识<!当匹配的jdk被检测到,pofle被激活例如,.4激活JDK.4,.4.02,而!.4激活所有版本不是以.4开头的 <!当匹配的操作系统属性被检测到,pofle被激活os元素可以定义些操作系统相关的属 <!激活pofle的操作系统的名 <name>Wndows<!激活pofle的操作系统所属家族(如'w <faml>Wndows</faml<!激活pofle的操作系统体系结 <!激活pofle的操作系统版本<veson>5..2600</ves<!如果Maven(其值可以在POM中通过${name}引用),其拥有对应的name值,Pofle存在属性名称字段就会激活pofle,否则按区分大小写方式匹配属性值字段><popet<!激活pofle的属性的名称<!激活pofle的属性的 </popet<!提供个文件名,通过检测该文件的存在或不存在来激活poflemssng检查文件是否存在,如果不存在则激活pofle另方,exsts则会检查文件是否存在,如果存在则激活pofle><f<!如果指定的文件存在,则激活pof <exsts>${based}/fle2.popetes</ex<!如果指定的文件不存在,则激活pof <mssng>${based}/fle.popetes</mss</actvat<!<!对应pofle的扩展属性列表Maven属性和Ant中的属性样,可以用来存放些值这些值可以在POM中的任何地方使用标记${X}来使用,这里X是指属性的名称属性有五种不同的形式,并都能在settngsml文件中访问poject.x:指代了POM中对应的元素值例如:<poject><veson>.0</veson></poject>通过${poject.veson}获得vesonsettngs.x指代了settnxl中对应元素的值例如:<settngs><offlne>false</offlne></settngs>${settngs.offlne}获得offlne的值eeP5.x:在<popetes/>元素中,或者外部文件中设置,以${someVa}<popet</popetnote:如果该pofle被激活,则可以再POM中使用${use.><!<!<eposto><!包含需要连接到远程仓库的信 <eposto<!远程仓库唯标识<!远程仓库名 <!<!如何处理远程仓库里发布版本的下载<!tue或者false表示该仓库是否为下载某种类型构件(发布版,快照版)<!该元素指定更新发生的频率Maven会比较本地POM和远程POM的时间戳这里的选项是:alwas(直),dal(默认,每日),nteval:X(这里X是以分钟为单位的时间间隔),或者neve(从不) <!当Maven验证构件校验文件失败时该怎么做gnoe(忽略),fal(失败),或者wan(警告 <!如何处理远程仓库里快照版本的下载有了eleases和snapshots这两组配置,POM就可以在每个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论