maven相关知识点

maven相关知识点,第1张

maven相关知识点 maven相关知识点

参考书籍:《maven实战》许晓斌 著

maven相关知识点
  • maven相关知识点
  • 6.仓库
    • 6.4 远程仓库的配置
      • 6.4.1远程仓库的认证
      • 6.4.2部署至远程仓库
      • 6.6 从仓库解析依赖的机制
    • 6.7 镜像
    • 6.8 仓库搜索服务
      • 6.8. 1 Sonatype Nexus
      • 6. 8. 2 Jarvana
      • 6.8.3 MVNbriwser
      • 6. 8. 4 MVNrepository
  • 9 使用Nexus创建私服
    • 9.2 安装
    • 9.2.1 下载Nexus
      • 9.5 配置Maven从Nexus下载构件

6.仓库 6.4 远程仓库的配置

    
        nexus-aliyun
        Nexus aliyun
        http://maven.aliyun.com/nexus/content/groups/public
        
            true
        
        
            false
        
    

改例中声明了一个id为nexus-aliyun,名称为Nexus aliyun的仓库。任何一个仓库的生命的id必须是唯一的,尤其需要注意的是, Maven自带的中央仓库使用的id为central,如果其他的仓库声明也使用该id,就会覆盖中央仓库的配置,
该配置中的url值指向了仓库的地址,一般来说,该地址都基于htp协议, Maven用户都可以在浏览器中打开仓库地址浏览构件
该例配置中的releases和snapshots元素比较重要,它们用来控制Maven对于发布版构件和快照版构件的下载,
这里需要注意的是enabled子元素,该例中releases的enabled值为true,表示开启Nexus aliyun仓库的发布版本下载支持,而snapshots的enabled值为false,表示关闭Nexus aliyun仓库的快照版本的下载支持。
因此,根据该配置, Maven只会从JBoss仓库下载发布版的构件,而不会下载快照版的构件。该例中的layout元素值default表示仓库的布局是Maven 2及Maven 3的默认布局,而不是Maven 1的布局。对于releases和snapshots来说,除了enabled,它们还包含另外两个子元素updatePolicy和checksumpolicy:

 
     false
     daily
     ignore
 

元素updatePolicy用来配置Maven从远程仓库检查更新的频率,
默认的值是daily,表示Maven每天检查一次。其他可用的值包括:
never一从不检查更新;
always-每次构建都检查更新:
interval: X-每隔X外钟检查一次更新(X为任意整数)。
元素checksumPolicy用来配置Maven检查检验和文件的策略。当构件被部署到Maven仓库中时,会同时部署对应的校验和文件。在下载构件的时候, Maven会验证校验和文件,如果校验和验证失败,怎么办?
当checksumPolicy的值为默认的warm时, Maven会在执行构建时输出警告信息,其他可用的值包括:
fail-Maven遇到校验和错误就让构建失败;
ignore一使Maven完全忽略校验和错误。

6.4.1远程仓库的认证

大部分远程仓库无须认证就可以访问,但有时候出于安全方面的考虑,我们需要提供认证信息才能访问一些远程仓库。例如,组织内部有一个Maven仓库服务器,该服务器为每个项目都提供独立的Maven仓库,为了防止非法的仓库访问、管理员为每个仓库提供了一组用户名及密码。这时,为了能让Maven访问仓库内容,就需要配置认证信息。

配置认证信息和配置仓库信息不同,仓库信息可以直接配置在POM文件中,但是认证信息必须配置在setting. ml文件中,这是因为POM往往是被提交到代码仓库中供所有成5访问的,而 seting. xml一般只放在本机,因此,在setings. xal中配置认证信息更为安全假设需要为一个id为my-proj)的仓库配置认证信息,编辑setings, xml文件见代码清单


   
		my-snapshot
		repo-user
		repo-pwd
   
   
		my-release
		repo-user
		repo-pwd
   

Maven使用setting. xml文件中并不显而易见的servers元素及其server子元素配置仓库认证信息。代码清单6-3中该仓库的认证用户名为repo-user,认证密码为repo-pwd。这里的关键是id元素, settings xml中server元素的id必须与POM中需要认证的repository元素的id完全一致。换句话说,正是这个id将认证信息与仓库配置联系在了一起。

6.4.2部署至远程仓库

私服的一大作用是部署第三方构件,包括组织内部生成的构件以及一些无法从外部仓库直接获取的构件。无论是日常开发中生成的构件,还是正式版本发布的构件,都需要部署到仓库中,供其他团队成员使用。Maven除了能对项目进行编译、测试、打包之外,还能将项目生成的构建部署到仓库中首先,需要编辑项目的pom.xml文件。配置distributionMangermet 元素如下:


   
       my-release
       project release repository
       http://192.168..100/content/repositories/proj-release
   
   
       my-snapshot
       project snapshot repository
       http://192.168..100/content/repositories/proj-snapshot
   

distributionManagement 包含repoitory 和 sapholeposiony子元素,
前者表示发布版本构件的仓库,后者表示快照版本的仓库,这两个元素下都需要配置id, name和url, id为该远程仓库的唯一标识, name是为了方便人阅读,关键的url表示该仓体的地址。
往远程仓库部署构件的时候,往往需要认证。就是需要在setting. xml中创建一个server元素,其id与仓库的id匹配,并配置正确的认证信息。不论从远程仓库下载构件,还是部署构件至远程仓库,当需要认证的时候,配置的方式是一样的。配置正确后,在命令行运行mva clean deploy, Maven就会将项目构建输出的构件部署到配置对应的远程仓库,如果项目当前的版本是快照版本,则部署到快照版本仓库地址,否则就部署到发布版本仓库地址。如下是部署一个快照版本的输出:

6.6 从仓库解析依赖的机制

6.7 镜像


6.8 仓库搜索服务

使用Maven进行日常开发的时候,一个常见的问题就是如何寻找需要的依赖,我们可能只知道需要使用类库的项目名称,但添加Maven依赖要求提供确切的Maven坐标。这时,就可以使用仓库搜索服务来根据关键字得到Maven坐标。本节介绍几个常用的、功能强大的公共Maven仓库搜索服务。

6.8. 1 Sonatype Nexus

地址: http//repository.sonatype.org/
Nexus是当前最流行的开源Maven仓库管理软件,本书后面会有专门的章节讲述如何使用Nexus假设私服。这里要介绍的是Sonatype架设的一个公共Nexus仓库实例。Nexus提供了关键字搜索、类名搜索、坐标搜索、校验和搜索等功能。搜索后,页面清晰地列出了结果构件的坐标及所属仓库。用户可以直接下载相应构件,还可以直接复制已经根据坐标自动生成的XMI.依赖声明,

6. 8. 2 Jarvana

地址: http://www.jarvana.com/jarvana/
Jarvana提供了基于关键字、类名的搜索,构件下载、依赖声明片段等功能也一应俱全。值得一提的是, Jarvana还支持浏览构件内部的内容。此外, Jarvana还提供了便捷的Java文档浏览的功能。

6.8.3 MVNbriwser

地址:http://www.mvnbrowser.com/
MVbrowser只提供关键字搜索的功能,除了提供基于坐标的依赖声明代码片段等基本功能之外, MVbrowser的一大特色就是,能够告诉用户该构件的依赖于其他哪些构件(Dependencies)以及该构件被哪些其他构件依赖(Referenced By)

6. 8. 4 MVNrepository

地址: https://mvnrepository.com/
MVNrepository的界面比较清新,它提供了基于关键字的搜索、依赖声明代码片段、构件下载、依赖与被依赖关系信息、构件所含包信息等功能。MVNrepostory还能提供一个简单的图表,显示某个构件各版本间的大小变化。

9 使用Nexus创建私服 9.2 安装

Nexus是典型的Java Web应用,它有两种安装包,一种是包含Jetty容器的Bundle包另一种是不包含Web容器的war包。

9.2.1 下载Nexus

下载地址:http://nexus, sonatype org/downloads/

9.5 配置Maven从Nexus下载构件





欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5697818.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存