• 【转】maven学习(中) 私服nexus搭建


     (转载说明:

      作者:菩提树下的杨过
      出处:http://yjmyzz.cnblogs.com 
      )

    上回继续,相信大家对maven每次都联网从国外站点下载依赖项的龟速网络已经不坎忍受了,今天先来看看如何搭建"仓库私服",目前nexus是使用比较广泛的私服软件之一,下面将介绍基本用法:

    一、到nexus官网下载最新版

    1.1 下载地址:http://www.sonatype.org/downloads/nexus-latest-bundle.zip (目前最新版本是2.7.2-03)

    1.2 下载完后,解压到指定目录,比如:c:\java\nexus\

    1.3 启动nexus

    %nexus_home%\bin\nexus.bat install (安装成windows服务)

    %nexus_home%\bin\nexus.bat start (启动)

    tips : 直接nexus.bat不带参数,会显示完整的参数列表

    参考下图,如果启用不起来,检查jdk版本,nexus要求1.7版本(如果版本不对,请调整环境变量JAVA_HOME指向jdk1.7的目录)

    如果换成1.7还是启用不了,建议用nexus.bat console 控制台方式启用,这样可以看到详细启动过程

    启动成功后,可以用http://localhost:8081/nexus 进入控制界面

    点击右上角的Log In,默认用户名/密码是admin/admin123

    二、添加jboss资源库地址

    2.1 先了解下nexus的资源库类型:

    Hosted Repository - nexus本机的资源库(相当于nexus所在服务器硬盘上已经存在的jar、pom文件库)

    Proxy Repository - 代理库,很多开源官方组织都在互联网上公布了Repository,供全世界的开发者使用,nexus中设置该类型的资源库后,其它使用nexus的开发者,表面上是在请求nexus服务器上的jar包,但nexus实质是背后是在请求这些互联网资源,首次会把服务器上没有的资源,从网上download到nexus服务器(以文件形式保存到硬盘上),然后再返回给开发者,下次再有同样的pom/jar请求时,直接从服务器硬盘上返回,不再请求互联网

    Repository Group - 资源组,比如我们有很多资源库:资源库A、资源库B...,可以把它们再成组合一个特殊的资源C,然后其它开发人员,在maven里配置资源C地址,这样maven在向资源C请求jar包里,实质会搜索资源A、资源B

    2.2 添加jboss 代理资源库

    maven默认的官方资源库http://repo1.maven.org/maven2/,很多第三方的jar包没有,所以我再添加一个jboss的资源库

    点击左侧的Repositories,然后再点击右侧的Add,会弹出下拉菜单,选择Proxy Repository

    接下来,参考下图填写:

    Respository ID这里填写:jboss-public-repository-group (可以自已改名字)

    Respository Name这里填写:JBoss Public Maven Repository Group (可以自已改名字)

    其它项保持默认

    Remote Storage Location这里填写:https://repository.jboss.org/nexus/content/groups/public-jboss/ (这是jboss公布的公开资源库)

    2.3 下载jboss eap 6.x的离线资源包

    首次使用nexus时,私服服务器上实质上没有任何jar包的缓存,所以第一次使用时,其实跟直接到互联网上下载没啥区别,只有后面再请求相同的jar包,服务器上才会有jar文件缓存,为了加快速度,我们可以直接上jboss官网下载离线资源包

    下载地址: htp://www.jboss.org/jbossas/downloads

    然后解压到指定目录,建议放在 %nexus_home%\sonatype-work\nexus\storage\ 下

    然后add一个hosted repository,参考下图:

    2.4 把刚才添加的二个respoitory添加到Public Repositories组

    刚才我们添加了二个新的资源库,检查一下是否包括在默认的Public Repositories组里

    如果没包括在组里,参考上图处理一下,然后保存。最后建议更新一下索引,参考下图:

    三、修改本机当前用户下.m2目录下的settings.xml

    复制代码
     1 <?xml version="1.0" encoding="UTF-8"?>
     2 
     3 <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
     4           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     5           xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
     6 
     7   <mirrors>
     8     <mirror>
     9       <id>nexus</id>
    10       <mirrorOf>*</mirrorOf>     
    11       <url>http://192.168.0.110:8081/nexus/content/groups/public/</url>
    12     </mirror>     
    13   </mirrors>  
    14   
    15   <profiles>
    16     <profile>
    17       <id>nexus</id>
    18       <repositories>
    19         <repository>
    20           <id>nexus</id>
    21           <name>Nexus</name>
    22           <url>http://192.168.0.110:8081/nexus/content/groups/public/</url>
    23           <releases><enabled>true</enabled></releases>
    24           <snapshots><enabled>true</enabled></snapshots>
    25         </repository>
    26       </repositories>
    27       <pluginRepositories>
    28         <pluginRepository>
    29           <id>nexus</id>
    30             <name>Nexus</name>
    31             <url>http://192.168.0.110:8081/nexus/content/groups/public/</url>
    32             <releases><enabled>true</enabled></releases>
    33             <snapshots><enabled>true</enabled></snapshots>
    34         </pluginRepository>
    35       </pluginRepositories>
    36     </profile>
    37   </profiles>
    38   <activeProfiles>
    39     <activeProfile>nexus</activeProfile>
    40   </activeProfiles>
    41 
    42  </settings>
    复制代码

    注:大家自行把这段xml中的地址换成nexus服务器的ip。

    然后随便创建一个maven项目,执行mvn clean package 之类,观察下输出:

    从上图可以看出,现在依赖项都是从nexus服务器下载的

    四、eclipse中添加资源xml

    最后再补充一个小技巧,这跟私服其实关系不大。每次我们在eclipse里创建maven project时,都会弹出一个界面,让我们选择“项目模板“,这个过程需要联网获取模板列表,而且每次都次重复获取,很不合理,如下图:

    可以点击Confiure,会弹出以下界面,点击”Add Local Catalog“

    先在浏览里访问 https://repository.jboss.org/nexus/content/groups/public-jboss/archetype-catalog.xml 这个地址,然后保存为xml文件,接下面的界面里 Catalog File里,选择这个xml文件,然后Description填写一个名字

    然后在创建Maven项目时,就可以直接选择这个了,选择后,将直接读取本机xml的内容,比联网获取要快得多

    下一节将学习如何利用profile来生成各种不同环境的部署包

  • 相关阅读:
    Java求区间连续最大和的三种解法(含输出起始位置)
    Java批量操作和遍历文件程序收集
    FastJson序列化部分字段的方法
    Spring源码之一步步拓展实现spring-mybatis
    Spring源码之BeanFactoryPostProcessor的执行顺序
    Classpath entry points to a non-existent location:D:libjavajdk8jrelibextaccess-bridge-32.jar
    编译Spring源码省心小贴士
    (转)HttpServletResquest对象
    (转)ServletConfig与ServletContext
    Oracle复习(复习精简版v1.0)
  • 原文地址:https://www.cnblogs.com/qneverever/p/4446486.html
Copyright © 2020-2023  润新知