nexus在linux上搭建
Maven 仓库的分类:(maven的仓库只有两大类)
1.本地仓库
2.远程仓库,在远程仓库中又分成了3种:
2.1 中央仓库
2.2 私服
2.3 其它公共库
有个maven私服可以很方便地管理我们的jar包和发布构建到远程仓库,本文就介绍了如何在linux下一步步使用nexus搭建maven私服。
私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。
首先安装好jdk 、maven
我这里安装的JDK 、maven版本信息如下:
- [root@localhost bin]# java -version
- java version "1.7.0_79"
- Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
- Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
- [root@localhost bin]# mvn -v
- Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T08:41:47-08:00)
- Maven home: /home/data/maven
- Java version: 1.7.0_79, vendor: Oracle Corporation
- Java home: /home/xuan/soft/jdk1.7.0_79/jre
- Default locale: en_US, platform encoding: UTF-8
- OS name: "linux", version: "3.10.0-327.el7.x86_64", arch: "amd64", family: "unix"
这里附上,环境配置:
- #java
- export JAVA_HOME=/home/data/java
- export PATH=$JAVA_HOME/bin:$PATH
- export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- #maven
- export MAVEN_HOME=/home/data/maven
- export MAVEN_HOME
- export PATH=${PATH}:${MAVEN_HOME}/bin
- #nexus
- export RUN_AS_USER=root
下载安装
nexus下载地址:http://www.sonatype.org/nexus/go
解压后会在同级目录中,出现两个文件夹:nexus-oss-webapp-1.8.0和sonatype-work,前者包含了nexus的运行环境和应用程序,后者包含了你自己的配置和数据。
nexus-2.12.0-01-bundle.tar.gz
- tar -zxvf nexus-2.12.1-01-bundle.tar.gz -C /home/xuan/soft/nexus
- [root@localhost soft]# tar -zxvf nexus-2.12.1-01-bundle.tar.gz
- nexus-2.12.1-01/
- nexus-2.12.1-01/nexus/
为了方便更新和切换版本,创建链接,更新或者切换版本只需更新链接即可:
- tar -zxvf nexus-2.12.1-01-bundle.tar.gz -C /home/xuan/soft/nexus
- [root@localhost nexus]# pwd
- /home/xuan/soft/nexus
- [root@localhost nexus]# ls
- nexus-2.12.1-01 sonatype-work
- [root@localhost nexus]#
- ln -s /home/xuan/soft/nexus /home/data/nexus
启动nexus
- [root@localhost bin]# pwd
- /home/data/nexus/nexus-2.12.1-01/bin
- [root@localhost bin]# ./nexus
- Usage: ./nexus { console | start | stop | restart | status | dump }
- $ ./nexus start
- Starting Nexus OSS...
- Started Nexus OSS.
启动成功:
查看控制台:
- [root@localhost bin]# ./nexus console
- ****************************************
- WARNING - NOT RECOMMENDED TO RUN AS ROOT
- ****************************************
- Running Nexus OSS...
- Nexus OSS is already running.
查看nexus日志:
- [root@localhost logs]# pwd
- /home/data/nexus/nexus-2.12.1-01/logs
- [root@localhost logs]# tail -f ./wrapper.log
- jvm 1 | 2016-05-20 06:50:10,655-0700 INFO [qtp1294005448-58] anonymous org.apache.http.impl.execchain.RetryExec - I/O exception (java.net.SocketException) caught when processing request to {s}->https://sonatype-download.global.ssl.fastly.net:443: Connection reset
配置nexus
访问网址:http://yourhostname:8081/nexus
访问网址:http://192.168.140.128:8081/nexus
右上角以admin登陆,默认用户名/密码:admin/admin123。
安装过程中可能遇到的错误:
1、进入启动目录,启动时不成功 提示
****************************************
WARNING – NOT RECOMMENDED TO RUN AS ROOT
****************************************
If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script.
大概意思就是要在环境配置export RUN_AS_USER=root,临时配置
也可以在vi /etc/profile 文件末尾里添加export RUN_AS_USER=root 永久配置
2、访问不了虚拟机的,需要关闭防火墙
centos从7开始默认用的是firewalld,这个是基于iptables的,虽然有iptables的核心,但是iptables的服务是没安装的。
所以你只要停止firewalld服务即可:
sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service
如果你要改用iptables的话,需要安装iptables服务:
sudo yum install iptables-services
sudo systemctl enable iptables && sudo systemctl enable ip6tables
sudo systemctl start iptables && sudo systemctl start ip6tables
下一步进行Maven 与私服的测试:
~/.m2/settings.xml
在maven的setting.xml文件增加使用nexus私服配置:
maven 私服地址 http://192.168.1.102:8081/nexus/content/groups/public/
maven 中央仓库地址:http://repo1.maven.org/maven2 (没有私服镜像可以中央仓库的)
- <settings>
- <mirrors>
- <mirror>
- <!--This sends everything else to /public -->
- <id>nexus</id>
- <mirrorOf>*</mirrorOf>
- <url>http://192.168.1.102:8081/nexus/content/groups/public/</url>
- </mirror>
- </mirrors>
- <profiles>
- <profile>
- <id>nexus</id>
- <!--Enable snapshots for the built in central repo to direct -->
- <!--all requests to nexus via the mirror -->
- <repositories>
- <repository>
- <id>central</id>
- <url>http://central</url>
- <releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases>
- <snapshots><enabled>true</enabled></snapshots>
- </repository>
- <repository>
- <id>spring-release</id>
- <name>Spring Maven Release Repository</name>
- <url>http://repo.springsource.org/libs-release</url>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </repository>
- </repositories>
- <pluginRepositories>
- <pluginRepository>
- <id>central</id>
- <url>http://central</url>
- <releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases>
- <snapshots><enabled>true</enabled></snapshots>
- </pluginRepository>
- </pluginRepositories>
- </profile>
- </profiles>
- <activeProfiles>
- <!--make the profile active all the time -->
- <activeProfile>nexus</activeProfile>
- </activeProfiles>
- <!-- deploy artifacts to repository. -->
- <servers>
- <server>
- <id>releases</id>
- <username>admin</username>
- <password>admin123</password>
- </server>
- <server>
- <id>snapshots</id>
- <username>admin</username>
- <password>admin123</password>
- </server>
- </servers>
- </settings>
测试效果图:
1、在项目的pom.xml文件 加入maven依赖测试
2、私服上的依赖
3、项目本地的依赖
参考文档:
http://tianweili.github.io/blog/2015/03/17/linux-nexus-maven-private-server/
maven 使用私服的参考文档:
http://blog.csdn.net/liujiahan629629/article/details/39272321
本地上传依赖到nexus服务器的两种方式:
1、通过网页上传
2、通过maven的方式depoly
在项目的pom.xml 加入如下配置 (这里不做详细介绍,可以参考上面的资料)
- <distributionManagement>
- <repository>
- <id>releases</id>
- <name>Nexus Release Repository</name>
- <url>http://192.168.1.102:8081/nexus/content/repositories/releases/</url>
- </repository>
- <snapshotRepository>
- <id>snapshots</id>
- <name>Nexus Snapshot Repository</name>
- <url>http://192.168.1.102:8081/nexus/content/repositories/snapshots/</url>
- </snapshotRepository>
- </distributionManagement>
运行命令:mvn package deploy 它会根据项目的pom.xml文件的配置如下 在私服生成些war包 (暂不知道在那些场景应用)
<groupId>com.xuan</groupId>
<artifactId>spring</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>springmvc_hibernate</name>
在私服生成
/com/xuan/spring/xxxxx.pom
/com/xuan/springxxxxx.war
nexus在linux上搭建的更多相关文章
- linux上搭建ftp
linux上搭建ftp 重要 解决如何搭建ftp 解决用户指定访问其根目录 解决访问ftp超时连接 解决ftp主动连接.被动连接的问题 1.安装ftp ...
- 使用Nginx在windows和linux上搭建集群
Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器 特点:反向代理 负载均衡 动静分离… 反向代理(Reverse Pro ...
- linux上搭建ftp、vsftp, 解决访问ftp超时连接, 解决用户指定访问其根目录,解决ftp主动连接、被动连接的问题
linux上搭建ftp 重要 解决如何搭建ftp 解决用户指定访问其根目录 解决访问ftp超时连接 解决ftp主动连接.被动连接的问题 1.安装ftp ...
- CentOS Linux上搭建PPPoE服务器及拨号设置
CentOS Linux上搭建PPPoE服务器及拨号设置 搭建PPPoE,成功了的话,就觉得超级简单,在CentOS Linux更是5步左右就能搞定. 1.安装pppoe,安装完成后,会有pppoe- ...
- 【转帖】Linux上搭建Samba,实现windows与Linux文件数据同步
Linux上搭建Samba,实现windows与Linux文件数据同步 2018年06月09日 :: m_nanle_xiaobudiu 阅读数 15812更多 分类专栏: Linux Samba 版 ...
- Linux上搭建SVN服务
环境:centos7 一.搭建svn服务 1. 安装svn yum -y install subversion 2. 创建一个目录作为svn服务的地址(svn://192.168.0.2:3690 访 ...
- mongo学习笔记(六):linux上搭建
linux分以下几台 monogos mongocfg mongod1 mongod2 1.用ssh把 mongodb-linux-x86_64-3.0.6.tgz 移到linux /root上 2. ...
- linux上搭建nginx+php+mysql环境详细讲解
1.mysql安装 #安装编译环境 yum install -y gcc gcc-c++ gcc-devel g++ g++-devel; yum install -y wget yum instal ...
- Openfire+spark在linux上搭建内部聊天系统
一. 实验环境 Ubuntu server14.04 openfire:http://www.igniterealtime.org/downloads/index.jsp spark:http: ...
随机推荐
- 第一节 如何用Go实现单链表
一.概念介绍 下面这副图是我们单链表运煤车队. 每节运煤车就是单链表里的元素,每节车厢里的煤炭就是元素中保存的数据.前后车通过锁链相连,作为单链表运煤车,从1号车厢开始,每节车厢都知道后面拉着哪一节车 ...
- makefile中重载与取消隐藏规则示例
学习<跟我一起写Makefile-陈皓>后一直不懂,如何重载或取消隐藏规则 为了博客版面整洁,何为隐藏规则,Makefile基本规则编写等基础支持请自行百度. 需要声明的是:这些知识可能在 ...
- Js中处理数据的常用内置方法
以下方法均不会修改操作数本身,只是将操作数处理后的数据返回 1.丢弃小数部分,保留整数部分 parseInt(x);//丢弃x中的小数部分,保留x中的整数部分 2.Math对象常用的方法 ceil(x ...
- python 验证码识别初探
使用 pytesser 与 pytesseract 识别验证码 前置 : 首先需要安装 tesserract tesserract windows 安装包及中文 https://pan.baidu ...
- 20155227 《Java程序设计》实验四 Android开发基础设计实验报告
20155227 <Java程序设计>实验四 Android开发基础设计实验报告 任务一 Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二 ...
- Discover Feature Engineering, How to Engineer Features and How to Get Good at It
Feature engineering is an informal topic, but one that is absolutely known and agreed to be key to s ...
- hive 动态分区插入
首先需要进行以下设置: set hive.exec.dynamic.partition=true; set hive.exec.dynamic.partition.mode=nonstrict; se ...
- C#与mongoDB初始环境搭建
mongoDB官网https://www.mongodb.com/ mongoDB默认安装路径(Windows x64平台) C:\Program Files\MongoDB\Server\3.4\b ...
- 学习HTML 第五节.简单交互 加个按钮
学习HTML 第五节.简单交互 也许你和我一样,对页面排版的兴趣小于网页交互,那么我们就先略过一些章节,直接先学一下简单交互. 前面点击图片打开链接的网址,已经是最简单的交互方式了,复杂的方式则需要用 ...
- application/x-www-urlencoded与multipart/form-data
学习ajax时,学到了GET与POST两种HTTP方法,于是去W3C看了二者的区别,里面提到了二者的编码类型不同,就在网上查阅了相关资料, 在这里把我查阅到的相关结果记录在此,方便以后学习,详细了解一 ...