精华内容
下载资源
问答
  • nexus

    2018-05-25 22:15:19
    nexus流程:如果构建的 Maven 项目本地仓库没有对应的依赖包,那么就会去 Nexus 私服去下载, 如果Nexus私服也没有此依赖包,就去远程中央仓库(即proxy代理仓库,默认是maven中央仓库,可设置其他的镜像)下载依赖...

    nexus流程:如果构建的 Maven 项目本地仓库没有对应的依赖包,那么就会去 Nexus 私服去下载, 如果Nexus私服也没有此依赖包,就去远程中央仓库(即proxy代理仓库,默认是maven中央仓库,可设置其他的镜像)下载依赖。 Nexus 私服下载成功后再下载至本地 Maven 库供项目引用。 

    Nexus 是通过仓库组统一管理多个仓库,我们在项目中可直接通过请求仓库组来请求到 被仓库组管理的多个仓库。如:通过http://192.168.10.10:8081/nexus/content/groups/public/ 这个地址

    可以请求到下面的仓库如:http://192.168.10.10:8081/nexus/content/repositories/snapshots/等


    hosted 宿主仓库:主要用于发布内部项目构件或第三方的项目构件(如购买商业的)以及无法从公共仓库获取的构件(如 oracle 的 JDBC 驱动)。宿主仓库是我们经常用到的,本地发布就是发布到这些宿主仓库中的其中一个。

    releases:内部的模块中 release 模块的发布仓库。
    snapshots:发布内部的 SNAPSHOT 模块的仓库。
    3rd party:第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去。

    proxy代理仓库:代理公共的远程仓库,可以通过这个修改默认的仓库,默认的中央仓库是https://repo1.maven.org/maven2/,可以在这里改为阿里云的代理。

    下载中央仓库的索引:如下改为true


    添加代理仓库:



    然后保存,放在central上边即可。


    索引下载完成后即可看到:



    maven配置:

    maven本地库连接私有库,私有库代理连接阿里云的镜像仓库。

    settings.xml:

    <servers>
        <server>
    	<!--连接仓库的id,之后pom中发布id要和此处一致-->
          <id>nexus-releases</id>
          <username>admin</username>
          <password>admin123</password>
    	</server>
        <server>
          <id>nexus-snapshots</id>
          <username>admin</username>
          <password>admin123</password>
        </server>
    </servers>
     <!--使用私服的配置-->
      <profiles>
         <profile>
    		 <id>test</id>
    		 <repositories>
    			 <repository>
    				 <id>nexus</id>
    				 <url>http://192.168.10.10:8081/nexus/content/groups/public/</url>
    				 <releases><enabled>true</enabled></releases>
    			 	 <snapshots><enabled>true</enabled></snapshots>
    			 </repository>
    		 </repositories>
    		 <pluginRepositories>
    			 <pluginRepository>
    				 <id>nexus</id>
    				 <url>http://192.168.10.10:8081/nexus/content/groups/public/</url>
    				 <releases><enabled>true</enabled></releases>
    				 <snapshots><enabled>true</enabled></snapshots>
    			 </pluginRepository>
    		 </pluginRepositories>
    	 </profile>
      </profiles>

    激活私服,激活的名字和上面私服的配置的id一致。

    <!--激活私服-->
      <activeProfiles>
    	<activeProfile>test</activeProfile>
      </activeProfiles> 


    pom中:这是在pom部署时连接用,id就是上面定义的server的id。且必须一致,不然连不上。这个配置一般放到顶级parent中。

    <!-- 设定团队持续集成发布包服务器 -->
    <distributionManagement>
    	<repository>
    		<id>nexus-releases</id>
    		<url>http://${maven.local.server}/content/repositories/releases</url>
    	</repository>
    	<snapshotRepository>
    		<id>nexus-snapshots</id>
    		<url>http://${maven.local.server}/content/repositories/snapshots</url>
    		<uniqueVersion>false</uniqueVersion>
    	</snapshotRepository>
    </distributionManagement>

    然后depoly即可发布到私服了。

    具体是发布到nexus-releases还是nexus-snapshots,根据要发布的包的pom文件中定义的版本version,版本中是SNAPSHOT(如:0.0.1-SNAPSHOT)就发布到snapshots中,且只能叫SNAPSHOT,其他的名字就发布到releases中了。

    展开全文
  • Nexus

    2014-04-30 15:38:59
    Nexus介绍 Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地...

    Nexus介绍

    Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,他还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器。

     

    下载和安装

    你可以从http://nexus.sonatype.org/downloads/ 下载最新版本的Nexus,笔者使用的是1.3.0版本。

    Nexus提供了两种安装方式,一种是内嵌Jetty的bundle,只要你有JRE就能直接运行。第二种方式是WAR,你只须简单的将其发布到web容器中即可使用。

     

    Bundle方式安装

    解压nexus-webapp-1.3.0-bundle.zip 至任意目录,如D:\dev_tools ,然后打开CMD,cd至目录D:\dev_tools\nexus-webapp-1.3.0\bin\jsw\windows-x86-32 ,运行Nexus.bat 。你会看到Nexus的启动日志,当你看到“Started SelectChannelConnector@0.0.0.0:8081”之后,说明Nexus启动成功了,然后打开浏览器,访问http://127.0.0.1:8081/nexus,你会看到如下的页面:

    要停止Nexus,Ctrl+C即可,此外InstallNexus.bat可以用来将Nexus安装成一个windows服务,其余的脚本则对应了启动,停止,暂停,恢复,卸载Nexus服务。

     

    WAR方式安装

    你需要有一个能运行的web容器,这里以Tomcat为例,加入Tomcat的安装目录位于D:\dev_tools\apache-tomcat-6.0.18 ,首先我们将下载的nexus-webapp-1.3.0.war 重命名为nexus.war ,然后复制到D:\dev_tools\apache-tomcat-6.0.18\webapps\nexus.war ,然后启动CMD,cd到D:\dev_tools\apache-tomcat-6.0.18\bin\ 目录,运行startup.bat 。一切OK,现在可以打开浏览器访问http://127.0.0.1:8080/nexus,你会得到和上图一样的界面。

     

    代理外部Maven仓库

    登陆

    要管理Nexus,你首先需要以管理员身份登陆,点击界面右上角的login,输入默认的登录名和密码:admin/admin123,登陆成功后,你会看到左边的导航栏增加了很多内容:

    这里,可以管理仓库,配置Nexus系统,管理任务,管理用户,角色,权限,查看系统的RSS源,管理及查看系统日志,等等。你会看到Nexus的功能十分丰富和强大,本文,笔者只介绍一些最基本的管理和操作。

     

    代理Maven中央仓库

    点击左边导航栏的Repositories,界面的主面板会显示所有一个所有仓库及仓库组的列表,你会看到它们的Type字段的值有group,hosted,proxy,virtual。这里我们不关心virtual,只介绍下另外三种类型:

    • hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库。
    • proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
    • group,仓库组,用来合并多个hosted/proxy仓库,通常我们配置maven依赖仓库组。

    由此我们知道,我们需要配置一个Maven中央仓库的proxy,其实Nexus已经内置了Maven Central,但我们需要做一些配置。点击仓库列表中的Maven Central,你会注意到它的Policy是release,这说明它不会代理远程仓库的snapshot构件,这是有原因的,远程仓库的snapshot版本构件不稳定且不受你控制,使用这样的构件含有潜在的风险。然后我们发现主面板下方有三个Tab,分别为Browse,Configuration和Mirrors,我们点击Configuration进行配置,你现在需要关心的是两个配置项:“Remote Storage Location”为远程仓库的地址,对于Maven Central来说是http://repo1.maven.org/maven2/;“Download Remote Indexes”顾名思义是指是否下载远程索引文件,Maven Central的该字段默认为False,这是为了防止大量Nexus无意识的去消耗中央仓库的带宽(中央仓库有大量的构件,其索引文件也很大)。这里我们需要将其设置为True,然后点击Save。在Nexus下载的中央仓库索引文件之后,我们就可以在本地搜索中央仓库的所有构件。下图展示了我们刚才所涉及的配置:

     

    添加一个代理仓库

    这里我们再举一个例子,我们想要代理Sonatype的公共仓库,其地址为:http://repository.sonatype.org/content/groups/public/。步骤如下,在Repositories面板的上方,点击Add,然后选择Proxy Repository,在下方的配置部分,我们填写如下的信息:Repository ID - sonatype;Repository Name - Sonatype Repository;Remote Storage Location - http://repository.sonatype.org/content/groups/public/。其余的保持默认值,需要注意的是Repository Policy,我们不想代理snapshot构件,原因前面已经描述。然后点击Save。配置页面如下:

     

    管理本地Maven仓库

    Nexus预定义了3个本地仓库,分别为Releases,Snapshots,和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也好,对我都是一样的,我只管根据groupId,artifactId,version等信息向你要构件。为了方便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”中,如图:

    创建仓库组和创建proxy及hosted仓库类似,这里不再赘述。需要注意的是format字段需要填写“maven2”,添加你感兴趣的仓库即可。

     

    搜索构件

    在浩大的Maven仓库中一下下点击链接,浏览路径以寻找感兴趣的构件是一件很郁闷的事情。Nexus基于nexus-indexer提供构件搜索功能,要想对仓库进行搜索,无论是hosted,proxy,或者group,你都必须确认索引文件存在。这一点对于代理仓库尤其重要,有些远程仓库可能根本就没有索引,所以你无法搜索这些代理仓库。有些远程仓库的远程索引非常大,如中央仓库达到了70M左右,那么第一次下载索引需要花很多时间,所以要期望得到搜索结果,确保看到如下的文件:

    一旦你的Nexus拥有了本地或者远程仓库的索引文件,你就可以享受Nexus的构件搜索功能了。不论登陆与否,你都可以使用关键字进行模糊搜索,比如我在左边导航栏上部的搜索框内输入junit,然后点击搜索按钮,右边立刻会分页显示500多条的junit相关构件信息。如果你了解更多的信息,你也可以通过限定groupId,artifactId,version进行搜索,点击导航栏中的“Advanced Search”,点击右边所有页面左上角的下拉框,选择“GAV Search”。笔者这里输入junit:junit: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代码 复制代码 收藏代码
    1. <settings>  
    2. ...   
    3. <profiles>  
    4.   <profile>  
    5.     <id>dev</id>  
    6.     <repositories>  
    7.       <repository>  
    8.         <id>local-nexus</id>  
    9.         <url>http://127.0.0.1:8080/nexus/content/groups/public/</url>  
    10.         <releases>  
    11.           <enabled>true</enabled>  
    12.         </releases>  
    13.         <snapshots>  
    14.           <enabled>true</enabled>  
    15.         </snapshots>  
    16.       </repository>  
    17.     </repositories>  
    18.   </profile>  
    19. </profiles>  
    20. <activeProfiles>  
    21.   <activeProfile>dev</activeProfile>  
    22. </activeProfiles>  
    23. ...   
    24. </settings>  
    Xml代码  收藏代码
    1. <settings>  
    2. ...  
    3. <profiles>  
    4.   <profile>  
    5.     <id>dev</id>  
    6.     <repositories>  
    7.       <repository>  
    8.         <id>local-nexus</id>  
    9.         <url>http://127.0.0.1:8080/nexus/content/groups/public/</url>  
    10.         <releases>  
    11.           <enabled>true</enabled>  
    12.         </releases>  
    13.         <snapshots>  
    14.           <enabled>true</enabled>  
    15.         </snapshots>  
    16.       </repository>  
    17.     </repositories>  
    18.   </profile>  
    19. </profiles>  
    20. <activeProfiles>  
    21.   <activeProfile>dev</activeProfile>  
    22. </activeProfiles>  
    23. ...  
    24. </settings>  

    由于我们不能直接在settings.xml中插入<repositories>元素,这里我们编写了一个profile,并添加了一个profile并使用<activeProfile>元素自动将这个profile激活。这里的local-nexus仓库指向了刚才我们配置的Nexus中“Public Repositories”仓库组,也就是说,所有该仓库组包含的仓库都能供我们使用。此外,我们通过<releases>和<snapshots>元素激活了Maven对于仓库所有类型构件下载的支持,当然你也可以调节该配置,比如说禁止Maven从Nexus下载snapshot构件。

    使用该配置,Maven就会从你的Nexus服务器下载构件了,速度和从Central下载可不是一个数量级的。

     

    部署构件至Nexus

    Nexus提供了两种方式来部署构件,你可以从UI直接上传,也可以配置Maven部署构件。

     

    通过Nexus UI部署

    有时候有个jar文件你无法从公共Maven仓库找到,但是你能从其它得到这个jar文件(甚至是POM),那么你完全可以将这个文件部署到Nexus中,使其成为标准流程的一部分。步骤如下:

    点击左边导航栏的"Repository",在右边的仓库列表中选择一个仓库,如“3rd Party”,然后会看到页面下方有四个tab,选择最后一个“Upload”,你会看到构件上传界面。选择你要上传的构件,并指定POM,(或者手工编写GAV等信息),最后点击Upload,该构件就直接被部署到了Nexus的"3rd Party"仓库中。如图:


    通过Maven部署

    更常见的用例是:团队在开发一个项目的各个模块,为了让自己开发的模块能够快速让其他人使用,你会想要将snapshot版本的构件部署到Maven仓库中,其他人只需要在POM添加一个对于你开发模块的依赖,就能随时拿到最新的snapshot。

    以下的pom.xml配置和settings.xml能让你通过Maven自动化部署构件:

    pom.xml

    Xml代码 复制代码 收藏代码
    1. <project>  
    2. ...   
    3. <distributionManagement>  
    4.   <repository>  
    5.     <id>nexus-releases</id>  
    6.       <name>Nexus Release Repository</name>  
    7.       <url>http://127.0.0.1:8080/nexus/content/repositories/releases/</url>  
    8.   </repository>  
    9.   <snapshotRepository>  
    10.     <id>nexus-snapshots</id>  
    11.     <name>Nexus Snapshot Repository</name>  
    12.     <url>http://127.0.0.1:8080/nexus/content/repositories/snapshots/</url>  
    13.   </snapshotRepository>  
    14. </distributionManagement>  
    15. ...   
    16. </project>  
    Xml代码  收藏代码
    1. <project>  
    2. ...  
    3. <distributionManagement>  
    4.   <repository>  
    5.     <id>nexus-releases</id>  
    6.       <name>Nexus Release Repository</name>  
    7.       <url>http://127.0.0.1:8080/nexus/content/repositories/releases/</url>  
    8.   </repository>  
    9.   <snapshotRepository>  
    10.     <id>nexus-snapshots</id>  
    11.     <name>Nexus Snapshot Repository</name>  
    12.     <url>http://127.0.0.1:8080/nexus/content/repositories/snapshots/</url>  
    13.   </snapshotRepository>  
    14. </distributionManagement>  
    15. ...  
    16. </project>  

    settings.xml

    Xml代码 复制代码 收藏代码
    1. <settings>  
    2. ...   
    3. <servers>  
    4.   <server>  
    5.     <id>nexus-releases</id>  
    6.     <username>admin</username>  
    7.     <password>admin123</password>  
    8.   </server>  
    9.   <server>  
    10.     <id>nexus-snapshots</id>  
    11.     <username>admin</username>  
    12.     <password>admin123</password>  
    13.   </server>     
    14. </servers>  
    15. ...   
    16. </settings>  
    Xml代码  收藏代码
    1. <settings>  
    2. ...  
    3. <servers>  
    4.   <server>  
    5.     <id>nexus-releases</id>  
    6.     <username>admin</username>  
    7.     <password>admin123</password>  
    8.   </server>  
    9.   <server>  
    10.     <id>nexus-snapshots</id>  
    11.     <username>admin</username>  
    12.     <password>admin123</password>  
    13.   </server>    
    14. </servers>  
    15. ...  
    16. </settings>  

    这里我们配置所有的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还有很多其它的特性,如用户管理,角色权限管理等等。

    Nexus的OSS版本是完全开源的,如果你有兴趣,你可以学习其源码,甚至自己实现一个REST客户端。

    马上拥抱Nexus吧,它是免费的!

     

    展开全文
  • maven nexus

    千次下载 热门讨论 2013-05-29 16:28:18
    Nexus提供了两种安装方式,一种是内嵌Jetty的bundle,只要你有JRE就能直接运行。第二种方式是WAR,你只须简单的将其发布到web容器中即可使用。 这里是bundle nexus-2.4.0-09版本,安装完成之后在地址栏输入...
  • Nexus介绍

    万次阅读 2018-11-06 09:21:15
    Nexus介绍 转自:https://www.cnblogs.com/wincai/p/5599282.html 开始在使用Maven时,总是会听到nexus这个词,一会儿maven,一会儿nexus,当时很是困惑,nexus是什么呢,为什么它总是和maven一起被提到呢? 我们...

    Nexus介绍

    转自:https://www.cnblogs.com/wincai/p/5599282.html

    开始在使用Maven时,总是会听到nexus这个词,一会儿maven,一会儿nexus,当时很是困惑,nexus是什么呢,为什么它总是和maven一起被提到呢?

    我们一步一步来了解吧。

     一、了解Maven,Maven用来干什么呢

    1. 优秀的构建工具

    通过简单的命令,能够完成清理、编译、测试、打包、部署等一系列过程。同时,不得不提的是,Maven是跨平台的,无论是在Windows、还是在Linux或Mac上,都可以使用同样的命令。

    2. 依赖管理工具

    项目依赖的第三方的开源类库,都可以通过依赖的方式引入到项目中来。代替了原来需要首先下载第三方jar,再加入到项目中的方式。从而更好的解决了合作开发中依赖增多、版本不一致、版本冲突、依赖臃肿等问题。

    具体是怎么实现的呢?Maven通过坐标系统准确的定位每一个构件,即通过坐标找到对应的Java类库。

    3. 项目信息管理工具

    能够管理项目描述、开发者列表、版本控制系统地址、许可证等一些比较零散的项目信息。除了直接的项目信息,通过Maven自动生成的站点,以及一些已有的插件,还能够轻松获得项目文档、测试报告、静态分析报告、源码版本、日志报告等非常具有价值的项目信息。

    二、 Maven与Nexus

    这个问题从Maven的第二个用处说起,依赖管理,通过在Pom中指定坐标的形式将jar引入到项目中。那这个过程,要经历怎样一个流程呢?从哪里寻找jar?下载的jar放到哪里?

    将这个问题顺下来,就知道nexus和maven的关系了。

    从哪里找到jar?项目用到的jar又存放在哪里?这引出了仓库的概念,maven通过仓库来统一管理各种构件。Maven的仓库分为本地仓库和远程仓库。

    当Maven根据坐标寻找构件时,它首先会查看本地仓库,如果本地仓库存在此构件,则直接使用;如果本地仓库不存在此构件,或者需要查看是否有更新的构件版本,Maven会去远程仓库查找,发现需要的构件之后,下载到本地仓库再使用。

    到了这里,问题的答案也就出来了。

    首先,Nexus是一种远程仓库,根据上段的介绍,我们已经知道远程仓库的作用。在远程仓库中,默认的是中央仓库,中央仓库是Maven核心自带的远程仓库。那就使用中央仓库不就得了吗,为什么我们要安装Nexus呢?

    我们从项目实际开发来看:

    1.一些无法从外部仓库下载的构件,例如内部的项目还能部署到私服上,以便供其他依赖项目使用。

    2. 为了节省带宽和时间,在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库。当本地Maven项目需要下载构件时,先去私服请求,如果私服没有,则再去远程仓库请求,从远程仓库下载构件后,把构件缓存在私服上。这样,及时暂时没有Internet链接,由于私服已经缓存了大量构件,整个项目还是可以正常使用的。同时,也降低了中央仓库的负荷。

    Nexus仅仅是私服的一种。

     

    展开全文
  • 我们知道,nexus本质上是一个java服务,只需要使用ARM架构的基础镜像和ARM架构的jre,然后将nexus的装包打进去,就能构建一个ARM架构的nexus 镜像。 鉴于手头没有ARM架构的服务器,我们有x86_64 的CentOS7.5 模拟.....

    一、实验背景

    我们使用nexus作为项目中docker镜像库,现在服务器要切ARM,但是nexus官方并不提供ARM版本的docker镜像。

    我们知道,nexus本质上是一个java服务,只需要使用ARM架构的基础镜像和ARM架构的jre,然后将nexus的安装包改造一下打进去,就能构建一个ARM架构的nexus 镜像。

    鉴于手头没有ARM架构的服务器,我们有x86_64 的CentOS7.5  模拟构建,在ARM服务器上的实现思路是一样!

     

    二、实验环境

     

    操作系统: CentOS7.5

    IP:192.168.1.100

    nexus 安装包:nexus-3.16.0-01-unix.tar.gz

    jre安装包:jre-8u212-linux-x64.tar.gz

     

     

    三、生成镜像构建文件

     

    在宿主机

    # useradd  nexus

    # java -version

     

    #  tar  -zxf    nexus-3.16.0-01-unix.tar.gz 

    #  vim nexus-3.16.0-01/bin/nexus.rc

     

    # ./nexus-3.16.0-01/bin/nexus  start

    #  ss -tan  | grep  8081

    浏览器访问: http://xx.xx.xx.xx:8081

    # ./nexus-3.16.0-01/bin/nexus stop

    #  tar -zcf nexus.tar.gz  nexus-3.16.0-01  sonatype-work

     

    # cat  Dockerfile

    #####################################################

    FROM centos:centos7.5.1804

    ENV NEXUS_VERSION="3.16.0-01" \

        NEXUS_BASE="/opt/nexus" \

        JRE_VERSION="8u212"

    RUN groupadd -g 1000  nexus && \

        useradd -r -u 1000 -g 1000 -m -c "Nexus Repository Manager" -d ${NEXUS_BASE} -s /bin/false nexus && \

        mkdir -p ${NEXUS_BASE}

    ADD jre-${JRE_VERSION}-linux-x64.tar.gz /usr/local/

    COPY nexus.tar.gz /opt

    COPY start-nexus-repository-manager.sh  /opt

    RUN chown -R nexus:nexus ${NEXUS_BASE} /opt/start-nexus-repository-manager.sh

    VOLUME ${NEXUS_BASE}

    EXPOSE  8081 8443

    USER nexus

    CMD ["sh", "-c", "/opt/start-nexus-repository-manager.sh"]

    ###################################################################

     

     

    # cat start-nexus-repository-manager.sh

    ###################################

    #!/bin/bash

    umask 0027

    JAVA_HOME="/usr/local/jre1.8.0_212"

    PATH=$JAVA_HOME/bin:$PATH

    nexus_base="/opt/nexus"

    if [ -z "$(ls -A ${nexus_base})" ]; then

      cd /opt

      tar -zxf nexus.tar.gz -C ${nexus_base}

      chown -R nexus:nexus ${nexus_base}

      rm -rf nexus.tar.gz

    fi

    cd ${nexus_base}/nexus-3.16.0-01/bin

    exec ./nexus run

    #######################################

     

     

    四、构建镜像

     

    #  docker build  -f Dockerfile  -t nexus:3.16.0-01 .

     

    # mkdir  /opt/nexus 

    # chown  -R  1000:1000  /opt/nexus

     

    #  docker run  -it  -d   --name  nexus    -v /opt/nexus:/opt/nexus  -p 8081:8081    nexus:3.16.0-01

    # docker logs  -f  nexus 

     

    # ss  -tan  | grep  8081

    #  docker  rm  -f  nexus 

     

    五、将nexus服务注册成系统服务

     

    #  vim  /etc/systemd/system/nexus.service

    #######################################################

    [Unit]

    Description=Nexus

    Requires=docker.service

    [Service]

    ExecStartPre=-/usr/bin/docker rm -f nexus

    ExecStart=/usr/bin/docker run \

        --name nexus \

        --ulimit nofile=65536:65536 \

        -p 8081:8081 \

        -p 2020:2020 \

        -v /opt/nexus:

    /opt/nexus \

        nexus:3.16.0-01

    ExecStop=/usr/bin/docker stop nexus

    LimitNOFILE=65535

    Restart=on-failure

    StartLimitBurst=3

    StartLimitInterval=60s

    [Install]

    WantedBy=multi-user.target

    #######################################################

     

     

    # systemctl  daemon-reload

    # systemctl  start nexus

    # systemctl  enable  nexus

    # systemctl  status  nexus

     

    浏览器访问:http:/xx.xx.xx.xx:8081

     

     

    展开全文
  • Nexus私服的安装和使用

    万次阅读 2019-10-29 23:37:02
    Nexus私服的安装和使用 本文是基于Windows 10系统环境,安装和使用Nexus服务器 Windows 10 nexus-2.12.0-01-bundle 一、Nexus的安装 (1) 官网下载 nexus-2.12.0-01-bundle.zip (2) 解压即可 注意不要解压在中文...
  • Nexus私服

    万次阅读 2018-08-28 20:43:07
    仓库:对maven来说仓库分为两类:...有三种专门的Maven仓库管理软件可以用来帮助我们建立私服:chiva、Artifactory和NexusNexus是当前最流行的Maven仓库管理软件。 一、用war方式安装Nexus 下载Nexus http://do...
  • nexus迁移

    2019-04-11 16:53:37
    上一篇:docker安装nexus nexus3.x版本数据默认放在sonatype-work目录下,把原有的nexus服务器上的sonatype-work目录打包拷贝到新的nexus服务器上 编写docker-compose.yml文件,通过挂载方式把sonatype-work目录挂载...
  • nexus 日志

    万次阅读 2018-03-09 14:16:43
    一、查看 nexus 的日志文件 1、进入到:nexus\nexus-2.14.8-01-bundle\nexus-2.14.8-01\logs\ 目录下(日志目录) 2、nexus 项目启动后,会在该目录下生成:wrapper.log 日志文件
  • 这里写自定义目录标题Windows下Nexus的安装与使用Nexus的下载Nexus的安装Nexus的启动在pom.xml中使用distributionManagement将项目打包上传到nexus私服 Windows下Nexus的安装与使用 Windows下Sonatype Nexus ...
  • 一、 Nexus3,默认是/,可以通过变量NEXUS_CONTEXT来修改。 Nexus2,默认是/nexus,可以通过变量CONTEXT_PATH来修改。 二、 Nexus3的dokcer镜像 Nexus2的dokcer镜像
  • nexus私服

    2018-04-26 18:35:33
    Nexus私服配置二、 Nexus安装与启动1、 解压2、 配置jdk环境变量(如果java的环境变量之前没有配置的)在解压后nexus-2.14.5-02文件\bin\jsw\conf 里的wrapper.conf配置3、 dos启动私服 nexus 继续后输入nexus...
  • nexus简介

    2019-10-15 21:28:00
    一、什么是Nexus nexus的全称是Nexus Repository Manager,是Sonatype公司的一个产品。它是一个强大的仓库管理器,极大地简化了内部仓库的维护和外部仓库的访问。 我们主要用它来搭建公司内部的maven私服。但是它的...
  • nexus2.5版本升级到nexus2.14版本版本升级
  • nexus应用

    千次阅读 2018-06-09 17:07:08
    1. 环境搭建 1.1 下载 http://www.sonatype.org/nexus/    NEXUS OSS [OSS = Open Source Software,开源软件——免费] NEXUS PROFESSIONAL -FREE ... 所以选择NEXUS OSS 找到Download andInstall Nex...
  • nexus安装

    千次阅读 2014-09-26 16:54:17
    nexus 快速安装指南1)下载nexus-2.9.2-01-bundle.zip地址:http://www.sonatype.org/nexus/2)解压redhat服务器:/opt下面出现2个目录:/opt/nexus-2.9.2-01/opt/snatype-work3)配置修改文件:/opt/nexus-2.9.2-01/...
  • Nexus Maven私服配置

    万次阅读 2019-02-24 15:47:47
    首先下载 Nexus解压包,网址:https://www.sonatype.com/download-oss-sonatype 当然,我这也有现成的,我用的版本是nexus-3.15.2-01(目前最新版),下载地址:...1.首先解压,然后找到C:\nexus-3....
  • maven私库nexus2.14.1迁移到nexus3.1(含安装教程),亲测可用
  • 启动nexus

    2017-01-10 14:31:28
    解压后会在同级目录中,出现两个文件夹:nexus-oss-webapp-1.8.0和sonatype-work,前者包含了nexus的运行环境和应用程序,后者包含了你自己的配置和数据。 cd nexus-2.11.4-01/bin 1.export RUN_AS_USER
  • Nexus3的使用

    万次阅读 2019-11-20 10:23:31
    nexus的简介、安装以及Maven项目中使用Nexus仓库
  • 部署nexus

    2017-02-16 09:44:12
    nexus-3.0.2-02.tar.gz 2、解压 3、修改data路径 vi ./bin/nexus.vmoptions -Dkaraf.data=/home/user/tools/nexus/data -Djava.io.tmpdir=/home/user/tools/nexus/data/tmp 4、将原来的data文件全部拷贝到...
  • nexus3下载地址

    千次阅读 多人点赞 2020-01-08 10:26:36
    由于nexus目前官网上已经很难下载了,除非翻墙,故整理了一下目前最新版本的分享一下,有需要的欢迎下载。 win64: nexus-3.20.1-01-win64.zip 链接:https://pan.baidu.com/s/19THgVb6LzLXJlxzomsvwhw 提取码:9vvg ...
  • 虚拟机配置:内存1G,硬盘20G,nexus启动失败,执行df -h: ![图片说明](https://img-ask.csdn.net/upload/201905/12/1557667215_135682.png),现在的nexus.vmoptions配置: -Xms128M -Xmx512M -XX:...
  • 一、安装Nexus 这里我们下载开源版 Nexus OSS。Nexus 提供两种安装包,一种是包含 Jetty 容器的 bundle 包,另一种是不包含容器的 war 包。 下载地址:http://www.sonatype.org/nexus/go 这里以windows上为例,...
  • nexus3使用

    2020-03-05 20:55:49
    nexus3 下载 https://www.sonatype.com/download-oss-sonatype linux安装 将下载的文件解压 mkdir nexus3 tar zxvf nexus-3.16.2-01-unix.tar.gz nexus3/nexus-3.16.2-01/bin/nexus3 start

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,975
精华内容 13,590
热门标签
关键字:

nexus