未加星标

Linux下使用Nexus搭建Maven私服详解

字体大小 | |
[系统(linux) 所属分类 系统(linux) | 发布者 店小二03 | 时间 20160801 | 作者 红领巾 ] 0人收藏点击收藏

有个Maven私服可以很方便地管理我们的jar包和发布构建到远程仓库,本文就介绍了如何在linux下一步步使用Nexus搭建Maven私服。

下载安装

最新nexus下载地址:http://www.sonatype.org/nexus/go

解压后会在同级目录中,出现两个文件夹:nexus-oss-webapp-1.8.0和sonatype-work,前者包含了nexus的运行环境和应用程序,后者包含了你自己的配置和数据。


1
2
3
4
$ mkdir nexus
$ tar xzvf /home/jili/nexus-2.7.0-05-bundle.tar.gz
$ ls
nexus-2.7.0-05 sonatype-work

启动nexus

1
2
3
4
5
6
7
8
$ cd bin/
$ ls
jsw nexus nexus.bat
$ ./nexus
Usage: ./nexus { console | start | stop | restart | status | dump }
$ ./nexus start
Starting Nexus OSS...
Started Nexus OSS.

查看控制台:


1
$ ./nexus console

显示未启动成功,报错如下:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
$ ./nexus console
Running Nexus OSS...
wrapper | --> Wrapper Started as Console
wrapper | Launching a JVM...
wrapper | JVM exited while loading the application.
jvm 1 | Exception in thread "main" java.lang.UnsupportedClassVersionError: org/sonatype/nexus/bootstrap/jsw/JswLauncher : Unsupported major.minor version 51.0
jvm 1 | at java.lang.ClassLoader.defineClass1(Native Method)
jvm 1 | at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
jvm 1 | at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
jvm 1 | at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
jvm 1 | at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
jvm 1 | at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
jvm 1 | at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
jvm 1 | at java.security.AccessController.doPrivileged(Native Method)
jvm 1 | at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
jvm 1 | at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
jvm 1 | at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
jvm 1 | at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
jvm 1 | Could not find the main class: org.sonatype.nexus.bootstrap.jsw.JswLauncher. Program will exit.
wrapper | Reloading Wrapper configuration...
wrapper | Launching a JVM...
wrapper | JVM exited while loading the application.
.
.
.
jvm 5 | Exception in thread "main" java.lang.UnsupportedClassVersionError: org/sonatype/nexus/bootstrap/jsw/JswLauncher : Unsupported major.minor version 51.0
jvm 5 | at java.lang.ClassLoader.defineClass1(Native Method)
jvm 5 | at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
jvm 5 | at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
jvm 5 | at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
jvm 5 | at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
jvm 5 | at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
jvm 5 | at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
jvm 5 | at java.security.AccessController.doPrivileged(Native Method)
jvm 5 | at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
jvm 5 | at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
jvm 5 | at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
jvm 5 | at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
jvm 5 | Could not find the main class: org.sonatype.nexus.bootstrap.jsw.JswLauncher. Program will exit.
wrapper | There were 5 failed launches in a row, each lasting less than 300 seconds. Giving up.
wrapper | There may be a configuration problem: please check the logs.
wrapper | <-- Wrapper Stopped

原因:查找原因是JDK版本过低造成的,升级到最新的JDK7或者使用nexus-2.4-bundle.tar.gz版本JDK6会支持.

Nexus有版本下载地址:http://www.sonatype.org/nexus/archived

下载Nexus2.4重来


1
2
3
4
5
6
7
8
9
10
11
12
13
$ ls
nexus-2.4.0-09 sonatype-work
$ cd nexus-2.4.0-09/bin/
$ ls
jsw nexus nexus.bat
$ ./nexus
Usage: ./nexus { console | start | stop | restart | status | dump }
$ ./nexus start
Starting Nexus OSS...
Started Nexus OSS.
$ ./nexus console
Running Nexus OSS...
Nexus OSS is already running.

控制台显示启动成功。

查看nexus日志:


1
2
3
4
$ cd nexus-2.4.0-09/logs
$ ls
wrapper.log
$ tail -f wrapper.log

配置nexus

访问网址:http://yourhostname:8081/nexus

Linux下使用Nexus搭建Maven私服详解

右上角以admin登陆,默认用户名/密码:admin/admin123。

Linux下使用Nexus搭建Maven私服详解

3rd party、Snapshots、Releases这三个,分别用来保存第三方jar、项目组内部的快照、项目组内部的发布版.

手动添加第三方jar

将第三方的jar上传到nexus上面:

Linux下使用Nexus搭建Maven私服详解
Linux下使用Nexus搭建Maven私服详解

点击Upload Artifact(s)按钮提交后即上传。

查看上传的jar包如下:

Linux下使用Nexus搭建Maven私服详解

在项目中使用私服的jar包配置pom.xml如下:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.vclk.mkt.crawler</groupId>
<artifactId>MarketingCrawler</artifactId>
<packaging>jar</packaging>
<version>0.3</version>
<name>MarketingCrawler</name>
<url>http://maven.apache.org</url>
<!-- 仓库地址 -->
<repositories>
<repository>
<id>nexus</id>
<name>Team Nexus Repository</name>
<url>http://yourhostname:8081/nexus/content/groups/public</url>
</repository>
</repositories>
<!-- 插件地址 -->
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Team Nexus Repository</name>
<url>http://yourhostname:8081/nexus/content/groups/public</url>
</pluginRepository>
</pluginRepositories>
<!-- jar -->
<dependencies>
<dependency>
<groupId>de.innosystec</groupId>
<artifactId>java-unrar</artifactId>
<version>0.5</version>
</dependency>
</dependencies>
</project>

Maven在项目根目录下执行mvn eclipse:eclipse命令时,所依赖的jar包都会从私服中下载到本地并关联上项目,私服中没有就会从网络上下载到私服,本地再从私服下载。

Linux下使用Nexus搭建Maven私服详解
自动发布构件到远程仓库

在工程的pom.xml中添加:


1
2
3
4
5
6
7
8
9
10
<distributionManagement>
<repository>
<id>nexus-releases</id>
<url>http://yourhostname:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<url>http://yourhostname:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>

进入maven的安装目录apache-maven-3.1.1\conf目录下,向settings.xml配置文件中的语句块中添加如下所示:


1
2
3
4
5
6
7
8
9
10
11
12
<servers>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>

进入windows命令行,在工程所在目录下执行


1
mvn deploy

所部署的包就自动上传到了nexus安装目录下的/maven/nexus/sonatype-work/nexus/storage/releases/com/vclk/mkt/crawler/MarketingCrawler/0.3目录

nexus仓库中各目录介绍

项目中的各种jar包和项目快照等都放在/nexus/sonatype-work/nexus/storage/目录下,在这个目录下包括以下各种目录和存放相应文件。

/nexus/sonatype-work/nexus/storage/central - 用于放置maven从中央仓库中下载下来的项目pom.xml中配置到的相关jar包;

/nexus/sonatype-work/nexus/storage/thirdparty - 用于放置自己手动上传的第三方jar包;

/nexus/sonatype-work/nexus/storage/releases - 用于放置项目deploy后的发布版。

Maven权威指南_中文完整版清晰PDF http://www.codesec.net/Linux/2014-06/103690.htm

Maven 3.1.0 发布,项目构建工具 http://www.codesec.net/Linux/2013-07/87403.htm

Linux 安装 Maven http://www.codesec.net/Linux/2013-05/84489.htm

Maven3.0 配置和简单使用 http://www.codesec.net/Linux/2013-04/82939.htm

Ubuntu下搭建sun-jdk和Maven2 http://www.codesec.net/Linux/2012-12/76531.htm

Maven使用入门 http://www.codesec.net/Linux/2012-11/74354.htm

Ubuntu 下 搭建Nexus Maven私服中央仓库 http://www.codesec.net/Linux/2016-08/133936.htm

本文地址:http://www.codesec.net/Linux/2016-08/134630.htm


Linux下使用Nexus搭建Maven私服详解

本文系统(linux)相关术语:linux系统 鸟哥的linux私房菜 linux命令大全 linux操作系统

主题: LinuxJVMUbuntuXML数据重来
分页:12
转载请注明
本文标题:Linux下使用Nexus搭建Maven私服详解
本站链接:http://www.codesec.net/view/481926.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 系统(linux) | 评论(0) | 阅读(18)