maven2完全使用手册

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

maven2完全使用手册maven2起步相信maven1大家都已经很熟悉了,具体maven能做什么,就不详细说了。个人觉得maven在开源项目中用的还是比较多的,公司内部,就不太清楚了。我以前的公司用过一段时间,不过后来就没有下文了。与maven1相比,maven2可算是几乎重写了,不过从速度来说应该更快。主要的几个新特性包括:(详细参考)1.更快、更简单速度方面可以比上ant了2.更少的配置文件现在的配置文件只剩下了settings.xml和pom.xml了。3.Plugin语言更换语言开始支持java,BeanShell和ant4.提供了预定义的模版这点是最有帮助的,用户可以自己定义自己的项目模版了,就像用appfuse一样生成项目结构5.生命周期的引入在Maven2中有了明确的生命周期概念,而且都提供与之对应的命令,使得项目构建更加清晰明了。6.新增DependencyScope这点也比较重要,有些用于test范围的包,可以不用加入依赖了7.传递依赖,简化依赖管理这是最为方便的,可以省了很多配置。如a依赖b,b依赖c默认a也会依赖c。但是也会带来隐患,如版本冲突。不过maven也已经考虑到了,可以使用exclusions来排除相应的重复依赖介绍了那么多,现在切入正题,开始maven2之旅:首些下载需要的工具:maven2:最主要的maven-proxy:用来代理repository,使用本地库代替maven2的远程库:一个不错的持续整合工具,用于自动build。支持ant,maven:版本控制工具相信都已经配置了。maven用于eclipse的插件,在maven主站有下载,不错的插件。当然idea也有相应的插件最后,http,服务器是必不可少的。用于内部开发使用。可以使用apache,或者jetty安装:安装maven2很简单,把下载来的maven包解开就行了。(目前我的配置都在win2003上,还没有应用于linux,所有所有的配置都针对windows).增加相应的环境变量m2_home=maven2的安装目录,不要忘了设置java_home的目录。另外在path中增加%m2_home%\bin;可以直接在命令行下面使用mvn。其他工具的安装在后续的文章会介绍。开始第一个mvean2项目:mvnarchetype:create-DgroupId=com.mycompany.app\-DartifactId=my-app简单介绍一下groupId相当于你的组织,如同org.springframework,会转化为相应得本地路径artifactId,你主要的jar包名称,也就是你要打成的jar名称。编译应用资源mvncompile编译相应的jave文件编译测试类以及运行测试类mvntest运行测试类如果只想编译test,执行mvntest-compile打包和安装你的本地库打包:mvnpackage安装:mvninstall创建websitemvnsite清除所有输出mvnclean创建相关的ide文件mvnidea:idea或者mvneclipse:eclipse顺便说一下,maven2是有生命周期这一概念的,也就是说如果你执行package,相应的以前步骤,如compile,test等都会自动执行。刚开始执行会比较慢,需要从maven2远程库中下载所有的文件到本地。如果你的本地没有相应的依赖包,则每次maven都会去远程下载,所以配置一个镜像库就比较重要了。另外介绍一下主要的参考资料:mavn2主站:主要的pom和settings.xml参考资料BetterBuildswithMaven不错的书,主要通过例子介绍。可惜都是E文的,花点时间还是值得的。下一个主题,会说一下maven2的主要配置。maven配置篇之settings.xmlmaven2比起maven1来说,需要配置的文件少多了,主要集中在pom.xml和settings.xml中。先来说说settings.xml,settings.xml对于maven来说相当于全局性的配置,用于所有的项目。在maven2中存在两个settings.xml,一个位于maven2的安装目录conf下面,作为全局性配置。对于团队设置,保持一致的定义是关键,所以maven2/conf下面的settings.xml就作为团队共同的配置文件。保证所有的团队成员都拥有相同的配置。当然对于每个成员,都需要特殊的自定义设置,如用户信息,所以另外一个settings.xml就作为本地配置。默认的位置为:${user.dir}/.m2/settings.xml目录中(${user.dir}指windows中的用户目录)。settings.xml基本结构如下:settingsxmlns=:xsi=:schemaLocation=://maven.apache.org/xsd/settings-1.0.0.xsdlocalRepository/interactiveMode/usePluginRegistry/offline/pluginGroups/servers/mirrors/proxies/profiles/activeProfiles//settings简单介绍一下几个主要的配置因素:localRepository:表示本地库的保存位置,也就是maven2主要的jar保存位置,默认在${user.dir}/.m2/repository,如果需要另外设置,就换成其他的路径。offline:如果不想每次编译,都去查找远程中心库,那就设置为true。当然前提是你已经下载了必须的依赖包。Servers在POM中的distributionManagement元素定义了开发库。然而,特定的username和pwd不能使用于pom.xml,所以通过此配置来保存server信息serversserveridserver001/idusernamemy_login/usernamepasswordmy_password/passwordprivateKey${usr.home}/.ssh/id_dsa/privateKeypassphrasesome_passphrase/passphrasefilePermissions664/filePermissionsdirectoryPermissions775/directoryPermissionsconfiguration/configuration/server/serversid:server的id,用于匹配distributionManagement库id,比较重要。username,password:用于登陆此服务器的用户名和密码privateKey,passphrase:设置privatekey,以及passphrasefilePermissions,directoryPermissions:当库文件或者目录创建后,需要使用权限进行访问。参照unix文件许可,如664和775Mirrors表示镜像库,指定库的镜像,用于增加其他库mirrorsmirroridplanetmirror.com/idnamePlanetMirrorAustralia/nameurlid,name:唯一的标志,用于区别镜像url:镜像的urlmirrorOf:此镜像指向的服务idProxies此设置,主要用于无法直接访问中心的库用户配置。proxiesproxyidmyproxy/idactivetrue/activeprotocolhttp/protocolhostproxy.somewhere.com/hostport8080/portusernameproxyuser/usernamepasswordsomepassword/passwordnonProxyHosts*.google.com|ibiblio.org/nonProxyHosts/proxy/proxiesid:代理的标志active:是否激活代理protocol,host,port:protocol://host:port代理username,password:用户名和密码nonProxyHosts:不需要代理的hostProfiles类似于pom.xml中的profile元素,主要包括activation,repositories,pluginRepositories和properties元素刚开始接触的时候,可能会比较迷惑,其实这是maven2中比较强大的功能。从字面上来说,就是个性配置。单独定义profile后,并不会生效,需要通过满足条件来激活。repositories和pluginRepositories定义其他开发库和插件开发库。对于团队来说,肯定有自己的开发库。可以通过此配置来定义。如下的配置,定义了本地开发库,用于release发布。repositoriesrepositoryidrepo-local/idnameInternal开发库/nameurl开发库/nameurl

1 / 31
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功