NetBeans版本的传送门:http://tieba.baidu.com/p/2835875340
准备事宜:
eclipse或者myeclipse一个,需要安装maven插件
如果不安装maven插件,自己下载maven版本解压到本地,eclipse/myeclipse也是可以使用非插件版本的maven的。
附上maven的下载地址:http://maven.apache.org/download.cgi
ps如果使用非插件版本的maven,需要配置maven的环境变量,配置如下
变量名:M2_HOME
变量值:C:\apache-maven-3.0.5(这个是我的解压目录,请自行修改自己的)
变量名:path
值:%M2_HOME%\bin(学过java的应该知道path里面有很多其他的值,请自行追加)
配置完以后,打开cmd,输入mvn -v
如果出现以下画面则说明maven的环境变量配置成功了
打开eclipse或者myeclipse配置maven插件,我用的是myeclipse版本,eclipse的位置应该大同小异,找到maven选项即可。
大家看到我的myeclipse自带了一个版本为3.0.2的maven,但是我真正使用的是自己下载并解压到c盘的maven3.0.5
下面说下怎么用eclipse建立一个简单的maven项目
右键,选择new,选other,过滤器中输入maven,出现以下画面,选中maven project,然后点next
下一步后,选择使用默认的工作空间即可(当然你也可以改),再下一步
出现了一个打包类型,如果是普通项目,需要打包成jar文件的,选择quickstar即可(也是默认选中的选项)。
如果是web项目,需要打包成war包,请选择webapp。
这里为了简单演示,就选默认的
选完以后,next出现项目配置。
Group Id通常为组织名,在公司常规的命名方式是公司域名后缀+公司名
如com.baidu com.google org.spring之类之类的
artifact id通常为项目名,也是项目打包以后出现的包的名称
version为该项目打包的版本号,默认是0.0.1快照版本
点finish就会自动构建一个maven项目,结构如下。
带一个main/java的主程序包和一个test/java的测试程序包
一个pom.xml文件
然后让我们来打开这个maven的核心配置文件pom.xml看看里面有什么,打开方式选择Maven Pom Editor就能看到如下的样子
注意下面有5个选项标签
overview,是项目信息纵览
dependencies,是项目引入的jar包
dependency hierarchy,是项目引入的jar包的互相的依赖关系
effective pom,实话是,这个是干啥我也不清楚,反正我用的少。。。。
pom.xml,就是这个配置文件的全部内容了
下面展示下怎么在项目中添加一个jar包,有2种方式,先介绍第一种。
打开dependencies标签,选择中间的add按钮
出现这个弹窗,他让你填需要引入的jar包的信息,那如何才能知道自己想引入的jar的信息呢?
这时候就要找到maven的中央仓储了。
附上传送门:http://www.mvnrepository.com/
比如,我要引入sping的包,请在最上面的位置直接搜spring
然后找到需要的jar包,如Spring Context,点击进入(广告请无视。。。。)
然后就能看到该jar的所有的正式发布的版本。我看有个最新的4.0.0。貌似不错,就你了。点击进入。
能看到这个画面,在这就能找到这个jar所有的信息,如groupId,artifactId,version
还有该jar包所依赖的的必须的包以及包的最低版本
然后回到eclipse,依次填入这些信息,点击ok
然后就能看到控制台,maven在为我们下载该jar包和该jar包所依赖的其他的jar包
进度走完以后,能看到我们只填了一个jar的信息,maven会自动下载所依赖的最少jar包,并自动引入项目中。
下面说下第二种添加jar包的方式,同时也是最常用的方式。
就是复制这段信息
然后在eclipse中,打开pom.xml标签,直接粘贴进去,保存即可。。。
下面介绍下使用maven编译打包项目的常用的命令
选中maven项目,右键run,选择maven build,出现下面的对话框
其中goals可以填一些自己的参数。
如测试,安装,清理,发布,打包。
测试:test。maven会使用test/java下面的代码全部运行来测试项目是否正确(前提是你每写一个方法/类,都需要写对应的测试方法)
清理:clean。maven会清理该项目所产生的所有class文件。
打包:package。maven会根据项目的类型来生成对应的包。如quickstar则是jar包,webapp是war包。
安装:install。在本地仓库安装这个项目的jar包。通常是为了方便其他项目引用该项目。
发布:deploy。如果使用了nexus等maven本地中央仓储管理系统,则使用该命令,会将该项目的包发布至nexus远程仓库。方便其他人来更新你所发布的包。(这个是公司内部常用的命令之一,毕竟是多人开发的项目)
自己测试,玩玩的话,用clean和package就差不多了
既然提到了nexus,那我顺便连这个一起讲了吧。。。。
说了一堆maven的好处,但是maven还是有几个小弊端的。
第一个就是所有的jar你都得从maven的中央仓库去下载,一个人的话其实倒也无所谓,反正都要下载,但是如果是一个公司,几百个开发人员,你把项目中的pom.xml更新一下,然后其他所有的开发人员都要连接maven远端的中央仓库去下载这个jar,这对带宽是极大的浪费
第二个是更大的问题,公司内部的项目,想用maven管理,并且需要发布到一个仓库,供其他部门或者其他项目组的人使用,这时候怎么办?总不能把项目打包发布到maven的公共仓库去吧(maven的公共仓库也不允许你发布上去)
这时候急需一个能代替maven中央仓库的本地仓库的管理工具,能完美替代maven中央仓库的功能。它,就是nexus
先附上传送门:http://www.sonatype.org/nexus/go
下载下来以后,解压到任意目录,然后使用cmd进入C:\nexus-2.6.4-02\bin目录(目录自己改)
输入nexus.bat
能看到以下画面
它会提示你能用的操作,那么首先我们需要安装nexus服务(win7以上系统请用管理员权限启动cmd,不然服务安装不了)
命令格式 nexus.bat install
这时候提示nexus服务安装完毕,打开系统的服务,看下是否存在该服务。
能看到该服务是已经安装好了,并且默认是自动启动的,你要觉得没必要的话,可以改成手动启动,需要的时候再启动nexus
然后说下其他几个命令的作用
console表示以控制台的方式启动nexus服务(可以看到输出日志)
install表示安装nexus服务
start表示启动nexus服务
stop表示停止nexus服务
uninstall表示卸载nexus服务
服务启动以后,在浏览器输入以下地址就能看到nexus仓库了
这时候注意右上角,有个log in
默认的用户名密码是admin admin123
以管理员身份登录以后会看到左侧标签有一些变化,新增了一些管理功能
点中第一个Repositories,这时候能看到你用nexus管理的仓库的样子
这时候的仓库是个空的仓库,如果是使用服务器来做整个项目组的统一的仓库,这时候就需要同步nexus和maven中央仓库了,这样以后项目组通过配置本地maven文件就能优先从这个nexus仓库中下载jar包,节省了带宽,而且项目的jar包也会默认发布到该nexus上面。(怎么配置maven的配置文件稍后说)
同步maven中央仓库的方法,选中Public Repositories,在下面的标签选中configuration
这里默认是订阅这4个maven远端的仓库,直接点save即可。
然后选中central,选brownse storage,展开以后就能看到maven远端仓库所有的jar包了。
下面说下怎么配置本地maven,将maven连上该nexus仓库。
大家还记得这个位置吧,下面有个使用的配置文件的位置。好的,打开这货。
然后找到mirrors标签
这个默认是注释掉了,我们来打开这个注释并配置镜像。
有几个标签是要填的
id是这个镜像的id,随便填一个就行,这里我们填nexus
name是这个镜像的名字,随意
mirrorOf是哪些jar需要从这个镜像下载,填*即可
url是镜像的路径,填http://localhost:8081/nexus/content/groups/public即可,如果是公司服务器,请自行修改ip和端口
下面说下如何将自己的项目发布至该nexus服务器
首先需要在nexus中建立自己的仓库
点add,选择新增一个hosted repository
在下面的deployment policy选择 allow redeploy
repository policy选择SNAPSHOT
点击save建立完成。
修改本地maven的配置文件
添加服务器id配置,用户名和密码
在项目的pom.xml中添加如下配置
注意,这个发布的仓库的id要跟maven配置文件的id一致,这个仓库的url来源是nexus给出的,如图
配置好以后,选中maven项目,右键run,选择maven build,出现下面的对话框
因为我们需要把该项目发布至nexus中,所以参数填deploy
看控制台跑完信息,打印出以下信息就是成功发布了。
可以看到一些上传的信息
然后我们去nexus仓库中查看,是否已经发布至仓库了
这时候查看我们的仓库,发现刚刚的项目的jar包已经发布至该服务器了,选中该jar包以后,右边会显示该jar包的maven引用xml的配置,这时候复制这个配置至其他项目的pom.xml文件,即可自动下载该项目的jar包并引用。
整理自:http://tieba.baidu.com/p/2836671913