创建网站目录时我们应该,建设网站具备的知识,美橙建站怎么样,注册安全工程师难吗文章装载于#xff1a;http://blog.csdn.net/jun55xiu/article/details/39497089 Nexus介绍 Nexus是Maven仓库管理器#xff0c;如果你使用Maven#xff0c;你可以从Maven中央仓库下载所需要的构件#xff08;artifact#xff09;#xff0c;但这通常不是一个好的做法http://blog.csdn.net/jun55xiu/article/details/39497089 Nexus介绍 Nexus是Maven仓库管理器如果你使用Maven你可以从Maven中央仓库下载所需要的构件artifact但这通常不是一个好的做法你应该在本地架设一个Maven仓库服务器在代理远程仓库的同时维护本地仓库以节省带宽和时间Nexus就可以满足这样的需要。此外他还提供了强大的仓库管理功能构件搜索功能它基于REST友好的UI是一个extjs的REST客户端它占用较少的内存基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器。 安装Nexus过程 1.首先确定我们的环境安装好mavenjdk等必须的环境 2.这些都准备好之后去下载最新版本的nexus 下载地址http://www.sonatype.org/nexus/go 代理Maven中央仓库 点击左边导航栏的Repositories界面的主面板会显示所有一个所有仓库及仓库组的列表你会看到它们的Type字段的值有grouphostedproxyvirtual。这里我们不关心virtual只介绍下另外三种类型 hosted本地仓库通常我们会部署自己的构件到这一类型的仓库。 proxy代理仓库它们被用来代理远程的公共仓库如maven中央仓库。 group仓库组用来合并多个hosted/proxy仓库通常我们配置maven依赖仓库组。 添加一个代理仓库 这里我们再举一个例子我们想要代理Sonatype的公共仓库其地址为http://repository.sonatype.org/content/groups/public/。步骤如下在Repositories面板的上方点击Add然后选择Proxy Repository在下方的配置部分我们填写如下的信息Repository ID - sonatypeRepository Name - Sonatype RepositoryRemote Storage Location - http://repository.sonatype.org/content/groups/public/。其余的保持默认值需要注意的是Repository Policy我们不想代理snapshot构件原因前面已经描述。然后点击Save。配置页面如下 管理本地Maven仓库 Nexus预定义了3个本地仓库分别为ReleasesSnapshots和3rd Party。这三个仓库都有各自明确的目的。Releases用于部署我们自己的release构件Snapshots用于部署我们自己的snapshot构件而3rd Party用于部署第三方构件有些构件如Oracle的JDBC驱动我们不能从公共仓库下载到我们就需要将其部署到自己的仓库中。 当然你也可以创建自己的本地仓库步骤和创建代理仓库类似点击Repository面板上方的Add按钮然后选择Hosted Repository然后在下方的配置面板中输入id和name注意这里我们不再需要填写远程仓库地址Repository Type则为不可修改的hosted而关于Repository Policy你可以根据自己的需要选择Release或者Snapshot 管理Maven仓库组 Nexus中仓库组的概念是Maven没有的在Maven看来不管你是hosted也好proxy也好或者group也好对我都是一样的我只管根据groupIdartifactIdversion等信息向你要构件。为了方便Maven的配置Nexus能够将多个仓库hosted或者proxy合并成一个group这样Maven只需要依赖于一个group便能使用所有该group包含的仓库的内容。 Nexus预定义了“Public Repositories”和“Public Snapshot Repositories”两个仓库组前者默认合并所有预定义的Release仓库后者默认合并所有预定义的Snapshot仓库。我们在本文前面的部分创建了一个名为“Sonatype Repository”的仓库现在将其合并到“Public Repositories”中。 点击仓库列表中的“Public Repositories”然后选择下方的Configuration Tab在配置面板中将右边“Avaiable Repositories”中的“Sonatype Repository”拖拽到左边的“Ordered Group Repository”中如图 搜索构件 Nexus基于nexus-indexer提供构件搜索功能要想对仓库进行搜索无论是hostedproxy或者group你都必须确认索引文件存在。这一点对于代理仓库尤其重要有些远程仓库可能根本就没有索引所以你无法搜索这些代理仓库。有些远程仓库的远程索引非常大如中央仓库达到了70M左右那么第一次下载索引需要花很多时间所以要期望得到搜索结果确保看到相应的文件。 一旦你的Nexus拥有了本地或者远程仓库的索引文件你就可以享受Nexus的构件搜索功能了。不论登陆与否你都可以使用关键字进行模糊搜索比如我在左边导航栏上部的搜索框内输入junit然后点击搜索按钮右边立刻会分页显示500多条的junit相关构件信息。如果你了解更多的信息你也可以通过限定groupIdartifactIdversion进行搜索点击导航栏中的“Advanced Search”点击右边所有页面左上角的下拉框选择“GAV Search”。笔者这里输入junit:junit:4.4然后回车 图4 选择一项搜索结果在页面下方会显示“Artifact Information”的面板你可以点击artifact或者pom下载对应文件而该面板右边更显示了一个Maven依赖配置你可以直接复制该配置到Maven POM中这是个十分方便的特性。 此外Nexus还支持基于classname的搜索你只需点击搜索页面右上角的下拉框选择“Classname Search”然后输入类名即可这里我不再赘述。 配置Maven使用Nexus 默认情况下Maven依赖于中央仓库这是为了能让Maven开箱即用但仅仅这么做明显是错误的这会造成大量的时间及带宽的浪费。既然文章的前面已经介绍了如何安装和配置Nexus现在我们就要配置Maven来使用本地的Nexus以节省时间和带宽资源。 我们可以将Repository配置到POM中但一般来说这不是很好的做法原因很简单你需要为所有的Maven项目重复该配置。因此这里我将Repository的配置放到$user_home/.m2/settings.xml中 ?xml version1.0 encodingUTF-8? settings xmlnshttp://maven.apache.org/SETTINGS/1.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsdlocalRepositoryD:\Repositories\Maven\/localRepositorypluginGroups/pluginGroups proxies/proxies servers server idNSX-Release-Repository/id usernameadmin/username passwordadmin123/password /server server idNSX-SnapShot-Repository/id usernameadmin/username passwordadmin123/password /server/servers profiles profile idg11n-dev/id repositories repository idG11n-Repository/id urlhttp://10.117.168.249:8081/nexus/content/groups/public//url releases enabledtrue/enabled /releases snapshots enabledtrue/enabled /snapshots /repository /repositories /profile /profiles activeProfiles activeProfileg11n-dev/activeProfile /activeProfiles /settings 由于我们不能直接在settings.xml中插入repositories元素这里我们编写了一个profile并添加了一个profile并使用activeProfile元素自动将这个profile激活。这里的G11n-Repository仓库指向了刚才我们配置的Nexus中“Public Repositories”仓库组的地址”http://10.117.168.249:8081/nexus/content/groups/public/“也就是说所有该仓库组包含的仓库都能供我们使用。此外我们通过releases和snapshots元素激活了Maven对于仓库所有类型构件下载的支持当然你也可以调节该配置比如说禁止Maven从Nexus下载snapshot构件。 部署构件至Nexus Nexus提供了两种方式来部署构件你可以从UI直接上传也可以配置Maven部署构件。 有时候有个jar文件你无法从公共Maven仓库找到但是你能从其它得到这个jar文件甚至是POM那么你完全可以将这个文件部署到Nexus中使其成为标准流程的一部分。步骤如下 点击左边导航栏的Repository在右边的仓库列表中选择一个仓库如“3rd Party”然后会看到页面下方有四个tab选择最后一个“Upload”你会看到构件上传界面。选择你要上传的构件并指定POM或者手工编写GAV等信息最后点击Upload该构件就直接被部署到了Nexus的3rd Party仓库中。举例上传oracle的驱动包图5 怎么使用上传的jar包吧很简单的前提是你已经建立了一个maven的项目。含有pom.xml这个文件,在这个文件中添加如下图6 然后在pom.xml中添加如下的本地仓库地址 。。。 dependenciesdependencygroupIdcom.oracle/groupIdartifactIdojdbc/artifactIdversion10.1.0.2.0/version/dependency/dependencies 通过Maven部署 更常见的用例是团队在开发一个项目的各个模块为了让自己开发的模块能够快速让其他人使用你会想要将snapshot版本的构件部署到Maven仓库中其他人只需要在POM添加一个对于你开发模块的依赖就能随时拿到最新的snapshot。 以下的pom.xml配置和settings.xml能让你通过Maven自动化部署构件 pom.xml project...distributionManagement repository idNSX-Release-Repository/id nameNSX Release Repository/name urlhttp://10.117.168.249:8081/nexus/content/repositories/NSX-Release-Repository/url /repository snapshotRepository idNSX-SnapShot-Repository/id nameNSX Snapshot Repository/name urlhttp://10.117.168.249:8081/nexus/content/repositories/NSX-SnapShot-Repository/url /snapshotRepository/distributionManagement.../project settings.xml 见上 这里我们配置所有的snapshot版本构件部署到Nexus的Snapshots仓库中 所有的release构件部署到Nexus的Releases仓库中。由于部署需要登陆因为我们在settings.xml中配置对应Repository id的用户名和密码。 然后在项目目录中执行mvn deploy你会看到maven将项目构件部署到Nexus中浏览Nexus对应的仓库就可以看到刚才部署的构件。当其他人构建其项目时Maven就会从Nexus寻找依赖并下载。 总结 本文介绍强大的仓库管理器——Nexus包括如何下载安装Nexus配置Nexus代理中央仓库管理Nexus的代理仓库本地仓库以及仓库组。并帮助你了解如何通过Nexus搜索构件。最后如何在Maven中配置Nexus仓库以及如何部署构件到Nexus仓库中。这些都是Nexus中最基本也是最常用的功能。随着使用的深入你会发现Nexus还有很多其它的特性如用户管理角色权限管理等等。 转载于:https://www.cnblogs.com/luffigo/p/5224667.html