Maven、eclipse与Nexus私服配置指南

1.1  Maven

1.1.1  相关概念

Maven是一个软件项目管理工具,通过它可便捷的管理项目的生命周期。即项目的jar包依赖,开发,测试,发布打包、版本等。虽然目前的IDE工具(如eclipse)可管理开发、发布、打包工作,但还没有形成一套完成的体系。

Maven有以下几个功能特点:

1、 jar包依赖

  这个也许会maven最突出的特点。使用maven进行开发时,不需要上网单独下载jar包,只需要在配置文件pom.xml中配置jar包的依赖关系,就可以自动下载jar包到我们的项目中(在联网情况下,maven可自动从https://repo.maven.apache.org/maven2中下载所需要的jar包。如果无法联网,可搭建基于Nexus私服的中央库并提供jar包下载)。这样,别人开发或者使用这个工程时,不需要来回的拷贝jar包,只需要复制这个pom.xml就可以自动的下载这些jar包。而且,我们自己下载jar包,还有可能造成版本的不一致,这样在协同开发的过程中就有可能造成代码运行的不一致。通过使用maven精确的匹配jar包,就不会出现这种问题了。

以下是一个项目的pom.xml中对jar包依赖的描述:

<dependencies>

<!-- spring需要的jar包 -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>3.2.4.RELEASE</version>

<type>jar</type>

</dependency>

</dependencies>

2 项目坐标

Maven通过特定的标识来定义项目名称,这样既可以唯一的匹配其他的jar包,也可以通过发布,使别人能使用自己的发布产品。这个标识就被叫做坐标,长的其实很普通,就是简单的xml而已。比如,以下为一个web项目的项目坐标描述信息(在该项目的pom.xml文件的开始位置)

<groupId>com.nci</groupId>

<artifactId>first_maven</artifactId>

<version>1.0.0</version>

<packaging>war</packaging>

各字段说明:

groupId:所述的项目名称,由于有的项目并不是一个jar包构成的,而是由很多的jar包组成的。因此这个groupId就是整个项目的名称。

artifactId:包的名称。

version:版本号。

packaging:包的类型,一般都是jar,也可以是war之类的。如果不填,默认就是jar。War代表web项目。

3 测试驱动

Maven是测试驱动的开发思路,因此工程创建初期,就包含两个文件夹,main和test。一个用于放置开发的java文件,一个用于写test单元测试。这样每次开发的时候,提前设计单元测试,就能帮助减少BUG。

1.1.2  安装

1、        下载:到apache官网下载apache-maven-3.3.9-bin.zip,解压放置到某个目录下(如D:\run_enviroment\apache-maven-3.3.9)

2、        设置系统环境变量:

新建系统变量MAVEN_HOME= D:\run_enviroment\apache-maven-3.3.9;然后将将这个系统变量添加到系统变量path中“%MAVEN_HOME%\bin”

3、        测试:在命令行中执行mvn –version,可显示maven的版本号

1.1.3  设置

1、设置镜像库地址

Maven默认的中央库地址为https://repo.maven.apache.org/maven2,但目前从这个地址下载jar不太稳定。因此,设置一个稳定的镜像库代替默认的中央库,以便maven可以从这个镜像库中下载项目依赖的jar包。

在D:\run_enviroment\apache-maven-3.3.9\conf\settings.xml中设置镜像库的地址,如下

<mirror>

<id>central</id>

<mirrorOf>*</mirrorOf>

<name>central-mirror</name>

<url>http://repo1.maven.org/maven2/</url>

</mirror>

2、设置本地资源库位置

Maven会将当前项目需要的jar包从中央库中下载到各个开发机的磁盘上,这称为Local Repository。默认的Local Repository位置为C:\Users\用户名\.m2\repository。但可以手动修改settings.xml文件中的相关内容来重新设置Local Repository的位置。

1.2  基于Maven在Eclispe中开发项目

1.2.1  配置eclispe使用的maven(前提是已有maven插件)

1、在eclipse中设置maven的配置文件路径(即设置settings.xml)以及本地资源库的位置。

1.2.2  创建maven工程

1、 直接点击新建,在里面可以找到Maven选项卡,点击MavenProject创建Maven工程

2、 选择默认的工程位置

初次使用时,可以勾选“create asimple project(skip archetype selection)”,这样就比较简单。Archetype应该是一些类似模板的东西,选择不同的模板后,maven就会创建基础的东西,方便开发。

3、 填写相关的groupIdartifactId version等信息。

Packaging类型设置为war时,将建立web项目。Packaging的默认值为jar,代表创建的项目为javaproject。

点击完成就创建好了一个简单的mavenweb工程。目录结构如下:

pom.xml:用于定义或者添加jar包的依赖

src/main/java:用于存放java源文件

src/main/resource:存放java类使用的资源文件

src/main/webapp:存放页面文件(类似于创建DynamicWeb Project时生成的web content文件件)

src/test:用于存放测试用例。

target:生成对应的class文件或发布的jar包。

4、 创建web项目需要的文件夹、文件

在第3步中生成的webproject上有x,是因为缺少web.xml文件。因此,可以从别的项目中复制web-inf/web.xml文件夹及文献到webapp文件夹下,形成下面的目录结构。

到此为止,一个使用maven创建的web项目就成功了。编译的结果在target中的war包。

1.2.3  项目的maven属性

1、       设置java编译器版本

2、       添加依赖的jar包

在项目的pom.xml中添加当前项目依赖的jar包,然后执行maven->update project则可从中央库中下载所需要的jar包到本地库。

<dependencies>

<!-- spring需要的jar包 -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>3.2.4.RELEASE</version>

<type>jar</type>

</dependency>

</dependencies>

1.3  Nexus私服

1.3.1  概念

1、功能、原理及结构

在使用maven进行开发时,依赖的jar包是从中央库中下载,而中央库都是在互联网上部署的。而有的企业是不开放互联网访问的。因此,需要在内网部署一套类似中央库的系统,这个系统一方面可以从互联网上部署的中央库下载jar包,一方面又可以为内网的本地maven提供jar包下载。这个东西就被称为“私服”。

私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载(也就是说,是开发机上的maven请求jar下载时,才会触发nexus从外部远程仓库中下载依赖的jar,nexus本身并不会去远程仓库中下载jar)。原理如下如所示:

常用的私服有:Apache ArchivaArtifactorySonatype
Nexus
。这里我们使用 Sonatype Nexus。

2、仓库类型:击左侧 Repositories链接,查看 Nexus内置的仓库:

Nexus 的仓库分为这么几类(type字段):

·        hosted 宿主仓库:主要用于部署无法从公共仓库获取的构件(如 oracle 的 JDBC 驱动)以及自己或第三方的项目构件。nexus内置了三个host库。

3rd party:第三方库,如mysql 的jdbc驱动jar

Release:自己开发的release版本的jar

Snapshots:自己开发的snapshot版本的jar(可理解为测试版本)

·        proxy 代理仓库:代理公共的远程仓库;

·        virtual 虚拟仓库:用于适配 Maven 1;

·        group 仓库组:Nexus 通过仓库组的概念统一管理多个仓库,这样我们在项目中直接请求仓库组即可请求到仓库组管理的多个仓库。Nexus内置了一个group仓库组“public repositories”,这个仓库组包含了4个仓库。

1.3.2  安装及配置

1、  下载开源版本的Nexus OSS,nexus-2.11.3-01.zip。这个版本自带了jetty作为应用服务器。

2、  解压放置都某个目录下,这里目录为D:\run_enviroment

3、  生成window服务:进入

D:\run_enviroment\nexus-2.11.3-01\bin\jsw\windows-x86-64,

点击“install-nexus.bat”,将nexus注册为windows service。

4、  在window中启动nexus,然后在浏览中访问:localhost:8081/nexus,账号密码为admin/admin123

5、  配置中央库:

设置Remote Storage Location=http://repo1.maven.org/maven2/;默认的https方式出现异常,应该是证书的问题,所以修改为http方式。

Download Remote Indexes=true,这样就能在“ArtifactSearch”中进行检索了。

1.3.3  添加第三方jar到3rdrepository

1.3.4  使maven使用nexus私服

在每台开发机上的maven配置文件settings.xml中添加mirror,如下图所示。

设置mirroof=*,则maven的所有请求都早当前mirror

url即为已配置好的nexus的group repositiores地址。

时间: 2024-10-16 09:04:12

Maven、eclipse与Nexus私服配置指南的相关文章

Linux安装配置maven以及搭建nexus私服

http://nlslzf.iteye.com/blog/812995 一.软件准备 1.apache-maven-3.0-bin.tar.gz 下载地址:http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-3.0-bin.tar.gz 2.nexus-oss-webapp-1.8.0-bundle.tar.gz 下载地址:http://nexus.sonatype.org/downloads/ 二.maven安装配置

【Maven】---Nexus私服配置Setting和Pom

maven---nexus私服配置setting和pom 上一遍博客已经在linux服务器上,搭建好nexus私服了,博客地址:Linux搭建Nexus3.X私服 现在就需要配置setting.xml和pom.xml来使nexus作为maven的私服.setting.xml文件在conf下面,pom.xml是在你创建maven项目中的pom.xml中. 一.将jar发送到nexus私服务器 1.创建maven项目 创建一个最简单的maven项目,然后新建一个工具类,用来测试当把它打成jar包放到

Maven基础配置--nexus私服配置

登录nexus私服后台,按照下图1-3的顺序进行添加仓库: 其中步骤3有三种仓库类型(Type)进行选择 1. Hosted Repository:本地仓库,在私服服务器上存放用户自行上传的jar包: 2. Proxy Repository:远程代理仓库,从远程下载jar包,并保存在私服服务器: 3. Repository Group:可把上述仓库合并为一个组,方便使用: 两种jar包类型(Policy) 1. Release:稳定发布的版本: 2. Snapshot:不稳定的,正在开发中的版本

Linux搭建Maven开发常用nexus私服

文章参考 :http://blog.csdn.net/cuker919/article/details/6338039 (Linux安装配置maven3.0以及搭建nexus私服) 搭建之前,先看下nexus中的几个仓库: 1,Public Repositories:仓库组,将所有策略为Release的仓库聚合并通过一致的地址提供服务. 2,3rd party:一个策略为Release的宿主类型仓库,用来部署无法从公共仓库获得的第三方发布版本构件. 3,Apache Snapshots:策略为S

nexus私服配置

搭建环境: 腾讯云服务器 CentOS 6.8.jdk7.sonatype nexus.maven.Xshell 5 版本信息: jdk : jdk-7u80-linux-x64.tar.gz nexus : nexus-2.11.2-03-bundle.tar.gz 搭建步骤: 1.jdk安装 1.1.linux系统中,应用的常用安装位置为/opt或者/usr/local,本次安装jdk,安装目录为/usr/local/jvm目录中 1.2.上传已下载好的jdk压缩包至服务器目录,本次为/da

ava Maven项目之Nexus私服搭建和版本管理应用

目录: Nexus介绍 环境.软件准备 Nexus服务搭建 Java Maven项目版本管理应用 FAQ 1.Nexus介绍 Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问.利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact.我们可以在局域网搭建一个maven私服,用来部署第三方公共构件或者作为远程仓库在该局域网的一个代理. 2.环境.软件准备 本次演示环境,我是在本机mac上操作,以下是我本地软件及版本

MAVEN学习(一) nexus私服

1.nexus下载:http://www.sonatype.org/nexus/go ,目前个人所用的是nexus-2.14.0-01-bundle.zip 2.?nexus端口:conf/nexus.properties的 application-port属性 ?3.nexus启动:bin\jsw目录下有各系统版本启动文件,根据自己电脑选择,目前个人所用的是windows-x86-64. nexus启动程序 ? ?4.nexus访问:本机登录地址http://localhost:8081/ne

Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)

目录 1.简介 2.安装Eclipse Maven插件 3.用Eclipse创建Maven Web项目 4.配置settings.xml 文件并下载项目依赖的JAR,并上传Web项目的api的JAR到Nexus 私服 1.简介 Maven.Nexus 私服的安装和配置和Maven的优点在Maven和 Sonatype Nexus私服的安装.配置及使用入门已经有介绍了,这里就不在介绍了,今天我们要介绍Maven创建并管理Web项目,方便我们项目的开发和管理. 2.安装Eclipse Maven插件

maven学习笔记五(仓库搭建,私服配置)

实际项目中,我们往往都是多人开发,这个时候,假如一个项目有300多M.用的jar包有100多个.只要项目组来一个人就从中央仓库下载依赖的jar,这种下载一般都需要持续很久.而且中央仓库一般都是配置在外网的.这种代价和传输是很慢和不划算的.这个时候,我们就需要构建自己的私服,即 开发人员->私服(局域网)->中央仓库(外网) 这个时候,开发人员,会首先访问私服看有没有jar有的话,直接从私服下载,没有的话,会从中央仓库中寻找.大大提高了传输的效率. 私服搭建工具 当然,目前最流行的私服搭建工具就