Maven从入门到精通的吐血之作Word文件下载.docx
- 文档编号:17843586
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:33
- 大小:1.46MB
Maven从入门到精通的吐血之作Word文件下载.docx
《Maven从入门到精通的吐血之作Word文件下载.docx》由会员分享,可在线阅读,更多相关《Maven从入门到精通的吐血之作Word文件下载.docx(33页珍藏版)》请在冰豆网上搜索。
2.3.4运行main13
2.3.5关于exec插件和项目依赖介绍14
2.3.6单元测试14
2.3.7构建一个大包好的命令行应用程序14
三、Maven——web简单应用16
3.1生成项目16
3.2配置jetty——命令行启动和Eclipse启动17
3.3添加一个servlet——添加J2EE依赖19
3.3.1添加servlet2.5规格说明作为依赖19
3.3.2添加jsp2.0规格说明作为依赖19
3.3.3添加一个servlet20
3.3.4配置web.xml20
3.3.5运行21
四、Maven——web应用进阶——简单多模块项目22
4.1创建项目22
4.2父级项目25
4.3加入module26
4.4simple_weather模块29
4.5webapp模块30
附录35
1、手工安装第三方jar35
2、更新本地索引35
前言
本文针对Maven2.1.0。
其余版本不再本文叙述范围内,特此声明。
本文内容为是一份名为《Maven权威指南中文版》的文档为基础进行的学习记录。
一、知识准备
1.1项目模型POM
groupId:
artifactId:
packaging:
version
对应Maven仓库存放目录结构:
/groupId/artifactId/version/artifactId-version.packaging
1.2生命周期
lifecycle——phase——goal
1.3安装及测试
解压Maven2.1.0至任何目录,配置环境变量:
新增M2_HOME=Maven的解压目录
修改PATH=Maven的bin目录
新增MAVEN_OPTS=-Xms256m-Xmx512m
重启电脑,在命令行输入mvn–version,如果显示版本号即为安装成功。
1.4帮助命令
mvnhelp:
describe{[–Dcmd=][-Dplugin=][-DgroupID=-DartifactID=]}
如果需要详细信息可在最后加上“-Ddetail”。
二、Maven入门和初步进阶
2.1入门例子
用Maven命令生成一个最简单的项目。
命令行如下:
##########################################################################
D:
\NewWorld>
mvnarchetype:
create-DgroupId=com.mycom.test-DartifactId=simple
在【NewWorld】目录下生成名为“simple”的Maven项目。
为方便查看,把生成的项目转为Eclipse项目(Eclipse插件已安装相关插件)。
但是,在Maven不熟悉的情况下,还是通过最普通的资源管理器方式查看以及用命令行方式执行Maven命令,不建议现在就使用Eclipse!
!
进入到带有【.pom】文件的目录级别,基本上就是在项目的跟目录下,之后对项目处理的命名均是在这个目录下执行,执行命令行如下:
\NewWorld\simple>
mvneclipse:
eclipse
使用Eclipse直接导入simple项目即可。
在此,可以用命令行输入“mvnsite”用于生成项目站点(实际上就是一个网页格式项目说明书)、“mvnpackage”用于项目打包、“mvninstall”用于项目安装至Maven仓库(目录结构在第一部分以提及)。
2.2进阶例子——SimpleWeather
2.2.1项目说明
一个基本命令行驱动的应用程序,接受邮件编码输入,然后从“Yahoo!
WeatherRSS”源获取数据,然后解析数据并把结果打印输出。
2.2.2创建项目
命令行如下:
create-DgroupId=com.mycom.test-DartifactId=Simple-Weather
2.2.3为pom增加组织、法律和开发人员信息
在pom的根中包含标签<
licenses>
<
organisation>
developers>
(具体内容略)
2.2.4Eclipse版本——为项目增加新的依赖——Maven镜像
参看同系列文档《nexus仓库管理》,本文在这里配置了一个Nexus镜像,用户级setting.xml镜像部分增加代码如下:
mirrors>
<
mirror>
id>
Nexus<
/id>
mirrorOf>
central<
/mirrorOf>
name>
Nexus-My-Test<
/name>
url>
http:
//127.0.0.1:
8081/nexus/content/groups/public/<
/url>
/mirror>
/mirrors>
2.2.5Eclipse版本——为项目增加新的依赖——Eclipse导入NexusIndex
在Eclipse【windows】-【showview】-【other】找到【Maven】-【Index】。
将出现一个Maven-Index控制台。
在控制台中右击选择添加索引。
输入Nexus对应的仓库地址。
最后刷新即可看到一堆包。
这个时候打开pom就可以方便地有提示地输入相应的依赖包了。
2.2.6Eclipse版本——为项目增加新的依赖——可视化导入包
点击下图右上角那个小瓶子增加。
在增加的时候注意,默认会选择最新的版本,但是经常最新版本是一个非正式版,这种版本通常不能正常使用,所以,要注意版本号,然后选择。
2.2.7Eclipse版本——为项目增加新的依赖——实现依赖包导入
实际上,上面在pom中加入依赖并非一定要使用Eclipse,只是这样加入更加的方便和准确,其实是可以手工慢慢敲入的。
pom加入依赖之后,在命令行,执行
\NewWorld\Simple-Weather>
mvninstall
如果你Maven本地仓库中没有这些依赖包,则会提示下载。
这样便实现了依赖导入了。
2.2.8手工版本——为项目增加新的依赖——POM写入依赖包
在已有的pom文件里面找到junit依赖的地方,放入如下代码:
dependency>
groupId>
log4j<
/groupId>
artifactId>
/artifactId>
version>
1.2.14<
/version>
/dependency>
dom4j<
1.6.1<
jaxen<
1.1.1<
velocity<
1.5<
mons<
commons-io<
1.3.2<
scope>
test<
/scope>
2.2.9手工版本——为项目增加新的依赖——远程下载包
上面的Eclipse版本在maven中建了镜像,使用了nexus作为远程仓库(也有人叫私服),新增的依赖包会先从镜像中搜寻下载。
现在不使用镜像,即把maven配置中的镜像配置删除,之后,直接使用
这样maven会从远程库,也就是默认配置中的http:
//repo1.maven.org/maven2/搜寻下载。
2.3源码
2.3.1源码功能介绍
这里由于更改了包名,所以学习需要对应各个包。
由于方便检查错误以及编译方便,这里还是使用Eclipse,但是注意,使用的是上一步骤里面的手工版本添加依赖,即不使用maven镜像。
执行:
然后导入到Eclipse中。
2.3.2依次加入类
从源码中复制到项目。
1、weather.java
2、main.java
3、YahooRetriever.java
4、YahooParser.java
5、WeatherFormatter.java
2.3.3添加外部项目资源
在【main】目录下新建文件夹【resources】,把对应的【log4j.properties】、【output.vm】文件放入到该文件夹中。
注意,如果使用Eclipse,对于新手,很容易误认为直接在src/main下面加个folder就OK的,实际上应该是增加一个“sourcefolder”!
然后再把文件复制进来。
如上,那个sourcefolder是类似package有个包的!
当sourcefolder加入以后,在下面的src普通folder会同步出现一个名叫【resources】的文件夹。
2.3.4运行main
之后执行(这里的空间由于更换了电脑关系,名字变了,但不会有影响。
)
\MyWorld\Simple-Weather>
mvnexec:
java-Dexec.mainClass=com.mycom.test.weather.Main
如果正确会出现
如果用Eclipse,在install之后,也可以像普通Java应用程序一样运行
2.3.5关于exec插件和项目依赖介绍
具体对照《maven权威指南》相应的部分。
2.3.6单元测试
(略)
2.3.7构建一个大包好的命令行应用程序
从上面看到,要运行这个项目,要么要使用maven,要么要在Eclipse里面,外部依赖是没有加入到jar中的。
mavenassembly插件就有这个功能。
在pom中配置mavenassembly描述符(具体位置查看源码)
build>
plugins>
plugin>
maven-assembly-plugin<
configuration>
descriptorRefs>
descriptorRef>
jar-with-dependencies<
/descriptorRef>
/descriptorRefs>
/configuration>
/plugin>
/plugins>
/build>
之后执行
mvninstallassembly:
assembly
如果成功,会生成一个比较大的包,会把依赖都加进来了。
但是这个不是很好的做法!
据说后面会有改进做法。
三、Maven——web简单应用
3.1生成项目
执行:
generate
之后选择18,就是那个web应用,默认是15,也就是我们上面那个例子默认的模型,之后是groupId、artifactId等:
DefinevalueforgroupId:
:
com.mycom.test
DefinevalueforartifactId:
simple-webapp
生成的项目注意在pom中有两个地方不同
packaging>
war<
/packaging>
这个是打包方式
以及
<
finalName>
simple-webapp<
/finalName>
这个是打包名字。
3.2配置jetty——命令行启动和Eclipse启动
在pom中配置(具体查阅源代码)
<
org.mortbay.jetty<
jetty-maven-plugin<
6.1.18<
因为jetty默认端口为8080,通常这个端口会被占用,所以这样启动
mvn-Djetty.port=8087jetty:
run
用Eclipse,导入的是6.1.18版本的Maven-jetty-plugin。
用Eclipse启动则可以通过以下方法方便启动:
【run】-【externaltools】-【externaltoolsconfiguration】弹出以下界面:
在左边菜单【program】右击【new】,出现一个新配置项目,点击。
之后在右边的配置界面中,name部分为改写配置名字(现在已经改为jetty),在location中选择当前Maven的【mvn.bat】安装路径。
在workingdirectory中选择当前项目。
在下面的argument中输入mvn的命令代码,注意里面不需要再添加“mvn”。
最后点击apply,然后run即可。
之后在
这里便是快捷方式。
配置好之后,mvninstall,然后启动jetty服务器,在浏览器中便可以浏览那个helloworld了。
3.3添加一个servlet——添加J2EE依赖
3.3.1添加servlet2.5规格说明作为依赖
这里我是使用了Eclipse来导入的,版本与《指南》不一致。
org.apache.geronimo.specs<
geronimo-servlet_2.5_spec<
1.2<
type>
jar<
/type>
compile<
注意,用Eclipse可以使用相同的方法加入索引,但是Maven下载不一定要使用Nexus镜像,也就是说,Eclipse里面可以配置Nexus的索引,但是Maven的用户级配置文件里面不需要配置镜像,这样,下载的时候还是会直接在默认官网上下载,因为我碰到过一种情况,通过Nexus下载的包出现问题。
同时下载东西,最好还是用Eclipse下载,Eclipse能够检测出下载是否完整,如果出错会自动重新下载的。
3.3.2添加jsp2.0规格说明作为依赖
geronimo-jsp_2.0_spec<
1.1<
/d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Maven 入门 精通 吐血