转载自http://www.cnblogs.com/fnng/archive/2011/12/02/2272610.html
http://www.cnblogs.com/fnng/archive/2011/12/16/2290587.html
最近开发中要用到maven所以对maven进行了简单的学习。因为有个maven高手在身边所以很快就上手了我这里算是自我总结吧。关于maven是什么东东请参考其它文章。
----------------准备工作-------------
Jdk 1.5以上java开发环境。
Eclipse IDE 一个。
Maven 3.0.3下载地址 http://maven.apache.org/docs/3.0.3/release-notes.html
----//快速搭建步骤
第一步配置maven环境
将下载文件解压然后设置maven环境
如果你配置过jdk的话这里对你应该不难。如我的maven环境为F:\maven\apache-maven-3.0.3
我的电脑-----属性----高级-----环境变量-----环境变量-----新建
变量名M2_HOME
变量值F:\maven\apache-maven-3.0.3
找到path
在环境变量值尾部加入;%M2_HOME%\bin;---前面注意分号
当然你也可以直接在path 路径下加入;F:\maven\apache-maven-3.0.3\bin 只是上面的方式更优雅一点。
我新建立
打开命令提示符开始---运行---cmd,检查我们的java环境和maven环境是否有误。
第二步修改仓库位置
修改我们仓库地址仓库用于存放我们项目所依赖的所有jar包。
我的仓库路径F:\maven\repo----这个路径是我自己创建你可以将路径创建在任何位置。
我们打开…\apache-maven-3.0.3\conf\目录下的setting.xml文件设置成我们创建的仓库路径
下面我们用一个命令验证一下。打开命令提示符输入mvn help:system
该命令会打印出所有的java系统属性和环境变量。这些信息对我们日常的编程工作很有帮且。
如果运行的过程中没有错误打开我们仓库F:\maven\repo会发现里面多了一些文件。这些文件就是我们从maven的中央仓库下载到本地仓库的。
第三步创建maven项目
创建一个我们自己的项目。
我们通过maven命令行方式创建一个项目
mvn archetype:create -DgroupId=com.chongshi.test -DartifactId=hello -DpackageName=com.chongshi.test -Dversion=1.0
因为是第一次构建项目所有依赖的jar包都要从maven的中央仓库下载所以需要时间等待。等以后我们的本地仓库中积累了我们常用的jar包后我们的开发将变得非常规范和方便。^_^!!
借助下载jar包的时间我们来了解一下pom.xml文件。
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.chongshi.test</groupId>
<artifactId>hello</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>hello</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
projectpom.xml文件中的顶层元素
modelVersion指明POM使用的对象模型的版本。这个值很少改动。
groupId指明创建项目的组织或者小组的唯一标识。GroupId是项目的关键标识典型的此标识以组织的完全限定名来定义。比如org.apache.maven.plugins是所有Maven插件项目指定的groupId。
artifactId指明此项目产生的主要产品的基本名称。项目的主要产品通常为一个JAR文件。第二象源代码包通常使用artifactId作为最后名称的一部分。典型的产品名称使用这个格式 <artifactId>- <version>. <extension>(比如myapp-1.0.jar)。
version项目产品的版本号。Maven帮助你管理版本可以经常看到SNAPSHOT这个版本表明项目处于开发阶段。
name项目的显示名称通常用于maven产生的文档中。
url指定项目站点通常用于maven产生的文档中。
description描述此项目通常用于maven产生的文档中。
对于一个项目中只有下面的一部分是是我们需要关注的
<groupId>com.chongshi.test</groupId>
<artifactId>hello</artifactId>
<version>1.0</version>
第四步编译项目代码
我们的项目已经创建完成。但我们点开目录发现它并不是我们eclipse所需要的项目目录格式。我们需要把它构建成我们eclipse可以导入的项目。
在命令提示符下进入到我们的创建的项目目录F:\maven\hello下执行mvn clean compile
Clean 告诉maven清理输入出目录target/compile告诉maven编译项目主代码。
不要急我们又需要一段时间来下载相关jar包。^_^!第一次用maven要学会淡定。
项目是编译完了但项目的目录结构还不是我们想要的eclipse的项目结构是不能导入到eclipse中的。所以还需要执行一个命令mvn eclipse:eclipse
命令执行完成后就得我们需要的项目目录了。
第五步导入eclipse工具
打开的我们的eclipse工具。
先配置maven仓库路径
Window----Perferences-----java-----Build Path-----Classpath Variables
New一个变量的类路径。
Name M2_REPO 注意这个名字必须要大写。
Path F:/maven/repo 点击“Folder…”找到有本地仓库的位置。
下面可以导入我的hello项目了。Eclipse如何导入项目我这里就不说了如果你是个java开发人员的话。
第六步包的更新与下载
打开项目发现我们junit 是3.8.1的有点老了。那我想换成4.7的如何通过maven的方式更换呢。其实很简单打开我们项目下的的pom.xml文件。
……
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
……
更改变junit的版本号然后重新执行mvn eclipse:eclipse
Maven 中央仓库地址http://search.maven.org
假如我们想下载一个struts 的jar包。在搜索框内搜索strruts 会要列出中央仓库中的所有struts版本。
列表的格式与我们pom.xml配置文件的格式是对应的。
我们在pom.xml中加入
<groupId>stuts</groupId>
<artifactId>struts-scripting</artifactId>
<version>1.0.1</version>
然后更新项目就可从中央仓库下载我们想要的任意jar包必须是开源的包
继续学习内容
1. 如何创建一个web项目
如果想让maven应用到项目开发中这个是必须的。
2. 如何使用jeety
maven提供的一个容器类似于tomcat
3. 如何创建一个代理仓库
如果是团队开发这个很有必要我们不可能每次都到中央仓库拿包那样很慢如果开发人员A已经下了某包开发人员B还要下创建代理仓库A第一次下的包会存入代理仓库中B要用时直接从代理仓库取就行。
本文更新一个命令。
第一节中提示创建一个项目用archetype:create create是个被废弃或不被推荐使用的插件在以后创建项目中请尽量使用archetype:generate
创建一个项目如下
mvn archetype:generate -DgroupId=com.chongshi.test -DartifactId=hello
-DpackageName=com.chongshi.test -Dversion=1.0
第一节抛出了三个问题本文将解决前两个
1. 如何创建一个web项目
2. 如何使用jettey容器运行
如果对maven的基本配置不了解的请先阅读第一篇文章
http://www.cnblogs.com/fnng/archive/2011/12/02/2272610.html
-----//创建一个文本项目
1. 如何创建一个web项目。
其实非常简单只是比普通项目多加一个参数DarchetypeArtifactId 命令如下
mvn archetype:generate -DgroupId=com.chongshi.test -DartifactId=mywebapps -DarchetypeArtifactId=maven-archetype-webapp -Dversion=1.0
定位到创建项目的目录下构建成eclipse项目
F:\mywebapp>mvn eclipse:eclipse
通过maven构建后就是我们eclipse所需要的项目目录如下。
由于本文不是讲解struts2项目的创建与配置所以就不写struts2的配置过程但为了不影响后面内容的讲解所以这里提供一个基于struts2的web项目
例子介绍http://www.mkyong.com/struts2/struts-2-hello-world-example/
项目源码下载
http://www.mkyong.com/wp-content/uploads/2010/08/Struts2-Hello-World-Example.zip
我解压到了本地D盘根目录下由于已经是maven 的项目格式了所以不需要对该项目运行mvn eclipse:eclipse命令进行构建。直接导入到eclipse工具中。项目目录结构如下
----//如何使用Jetty容器
2. 如何使用jetty容器运行项目。
使用添加jetty 运行项目。
Jetty和tomcat一样也属于web容器。Jetty做maven中做为一个插件。我们要在pom.xml中添加jetty的插件才能调用jetty。
在<project>…</project>标签之间插入如下信息
<build>
<finalName>Struts2Example</finalName>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.10</version>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
<stopKey>foo</stopKey>
<stopPort>9999</stopPort>
</configuration>
<executions>
<execution>
<id>start-jetty</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<scanIntervalSeconds>0</scanIntervalSeconds>
<daemon>true</daemon>
</configuration>
</execution>
<execution>
<id>stop-jetty</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
在项目目录下执行mvn jetty:jetty
D:\java\Administrator\workspace3\Struts2Example>mvn jetty:jetty
在慢长的等待插件下载过程中(公司网速不给力)我上了一次厕所、倒了一次水。在群里和朋友乱侃了一通。^_^!!
等插件下载完成后就可以运行jetty了运行命令mvn jetty:run
这时就可以在浏览器中访问我们的jsp页面了。
重启Jetty按键盘ctrl+c根据提示按 y