`
yeweimian123
  • 浏览: 41913 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

maven学习文档

阅读更多
Maven 中的基本概念

在使用 Maven 的过程中,会经常遇到以下概念,了解这些有助于更好的理解 Maven 的构建过程。

1. Project:Maven 把它所要构建的任何项目都称为一个 Project。此 Project 应该符合下面定义的POM模型。一个 Project 可以依赖于另一个 Project;Project 还可以包含多个子 Project,子 Project 也是一个独立的 Project。Maven 可以管理 Project 之间的各种关系。

2. Project Object Model(POM):POM 定义了 Project 的元数据。Maven 可以根据这些元数据来构建这个 Project。POM一般定义在 Project 根目录下的 project.xml 文件中。

3. Dependency:一般的 Java 项目在编译或运行时需要依赖于外部的包,在 Maven 中,这些包称为 Dependency。

4. Goal:Goal 是 Maven 中的执行单元,相当于 Ant 中的 task。每一个 Goal 都对应于项目构建过程中的一个操作,例如:Java 程序的编译、web 应用打包。Maven 通过 Plug-in 的方式已经提供了大多数需要经常使用的 Goal,但对应特定的项目,也可以在 maven.xml 中定义自己的 Goal。

5. Plug-in:Maven 是通过 Plug-in 来组织的。Maven 所提供的每一项功能都是通过 Plug-in 来完成的。Plug-in 是可以重用的,它定义了 Goal,并且使用在 POM 中定义的 Project 元数据来执行这些 Goal。

6. Repository:Repository 用来统一存放 Maven 在构建项目过程中所依赖的外部的包文件。有两中类型的 Repository:Local Repository 和 Remote Repository。Maven 在构建过程中,会检查 Local Repository,如果没有所依赖的包,会去检查 Remote Repository,并且把此包自动下载到 Local Repository。



Maven2安装

去Apache网站下载Maven2了。下载地址:http://maven.apache.org/download.html 。我下载的版本是maven-2.0.9-bin.zip

然后我把maven-2.0.9-bin.zip解压到D:\maven-2.0.4

下面就是配置环境变量了,这和1.0的版本是一样的。(1)MAVEN_HOME:D:\maven-2.0.4 (2)在Path 中加入%MAVEN_HOME%\bin



基本设置,打开D:\maven-2.0.4\conf\settings.xml
1. 改变本地的数据仓库目录:改变<localRepository>E:/app/m2/repository</localRepository> 目的:改变本地的数据仓库目录(存放从远程下载的jar包),如果不改变也可以,如不改变,缺省目录为:C:\Documents and Settings\主机名\.m2\repository
2. 配置代理,主要目的是为了能从远程下载jar包,根据实际的网路情况进行配置吧。如果你是有代理服务器的,如果不配置,就不能从远程下载jar包了。配置如下(注意:如果你的网络没有代理服务器,就不用配置这个步骤)
      <proxy>
       <id>optional</id>
       <active>true</active>
       <protocol>http</protocol>
       <host>192.168.17.100</host>
       <port>8889</port>
       <nonProxyHosts>192.168.*.*</nonProxyHosts>
     </proxy>



Maven2命令,常用的命令有:

  创建Maven的普通java项目:mvn archetype:create -DgroupId=com.codeline.commons -DartifactId=pjoName   

  创建Maven的Web项目:

命令:

mvn archetype:create  -DgroupId=com.mycompany.webapp  -DartifactId=myweb  -DarchetypeArtifactId=maven-archetype-webapp

简单解释一下:
archetype 是一个内建插件,他的create任务将建立项目骨架
archetypeArtifactId   项目骨架的类型

可用项目骨架有:
* maven-archetype-archetype
* maven-archetype-j2ee-simple
* maven-archetype-mojo
* maven-archetype-portlet
* maven-archetype-profiles (currently under development)
* maven-archetype-quickstart
* maven-archetype-simple (currently under development)
* maven-archetype-site
* maven-archetype-site-simple, and
* maven-archetype-webapp

groupId  项目的java包结构,可修改
artifactId  项目的名称,生成的项目目录也是这个名字,可修改
在当前目录下会生成一个myweb文件夹,这个文件就是我们的项目文件夹了



  编译源代码:mvn compile (或者:mvn compiler:compile)  

  编译测试代码:mvn test-compile   

  运行测试:mvn test   

  产生site:mvn site   

  打包:mvn package   

  在本地Repository中安装jar:mvn install   

  清除产生的项目:mvn clean   

  生成eclipse项目:mvn eclipse:eclipse  

  生成idea项目:mvn idea:idea  

  组合使用goal命令,如只打包不测试:mvn -Dtest package   

  编译测试的内容:mvn test-compile  

  只打jar包: mvn jar:jar  

  只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile (这里要特别注意 -skipping 的灵活运用,当然也可以用于其他组合命令)  

  清除eclipse的一些系统设置:mvn eclipse:clean  



生成eclipse工程

打开命令提示符,进入指定的项目目录D:/testapp ,

执行以下命令:

mvn archetype:create -DgroupId=com.mycompany.app
-DartifactId=my-webapp
-DarchetypeArtifactId=maven-archetype-webapp



其中 my-webapp是项目名,这样就生成了一个web项目,

然后 cd my-webapp进入此项目主目录,执行:mvn eclipse:eclipse

后项目my-webapp就变成了eclipse工程项目了。

用eclipse打开后,如果发现报如下错误:Unbound classpath variable: 'M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar' in project my-webapp   ,这是因为在Eclipse 没有配置 M2_REPO 变量,配置步骤:window >> preferences >> Java >> Build Path >> Classpath Variables
新建一个 M2_REPO 的变量,变量值指向你系统的Maven2的数据仓库位置。

Eclipse maven插件

在eclipse中我们可以下载一个maven的插件,用来辅助eclipse进行maven工程的开发工作。这个插件名称叫做mavenide。并且非常方便的是,这里还提供了一个flash的演示来介绍如何安装此插件,这个flash演示的观看地址在:http://m2eclipse.codehaus.org/Installing_Maven_2.0_plugin_for_Eclipse.html

·  注意在图中有写update 网址时一定按照下面的更新的网站.否则会报错的

http://m2eclipse.sonatype.org/update



如何安装Jar(或war)依赖到本地的数据仓库中?
下面具一个如何把dwr.jar包上传到本地数据仓库的例子,一看例子,大家就明了了。
- 下载dwr.jar包到本地,我把它放到了 C:/ (C盘根目录)
- 进入“命令行提示符”,进入到C:/,然后执行 mvn install:install-file -Dfile=dwr.jar -DgroupId=dwr.mocha -DartifactId=dwrDart -Dversion=1.0 -Dpackaging=jar 这样就把dwr传到了本地仓库中(我的本地仓库地址为:D:\Program Files\maven-2.0.9\repository\),上传到仓库中的jar包名为dwrDart-1.0.jar,目录结构为dwr/mocha/dwrDart/1.0/dwrDart-1.0.jar



配置存储库

要求项目的每个开发者必须在conf目录中配置存储库是不方便的,所以Maven可以同时查看多个存储库并且将它们全部配置在pom.xml文件中。让我们看看一个例子,它展示了如何在应用程序用使用多个存储库。在以下从pom.xml文件摘录的片断中,我们设置了两个存储库来让Maven寻找依赖项。Ibiblio一直是默认的存储库,我们又添加了Planet Mirror作为后援存储库。我们也可以让团队使用的本地web服务器作为第二个存储库。

<repositories>
     <repository>
       <id>Ibiblio</id>
       <name>Ibiblio</name>
       <url>http://www.ibiblio.org/maven/</url>
     </repository>
     <repository>
       <id>PlanetMirror</id>
       <name>Planet Mirror</name>
        <url>http://public.planetmirror.com/pub/maven/</url>
     </repository>
   </repositories>





Pom.xml 文件配置

pom.xml文件基本节点介绍:
<project>:文件的根节点.
<modelversion>:pom.xml使用的对象模型版本.
<groupId>:创建项目的组织或团体的唯一Id.
<artifactId>:项目的唯一Id,可视为项目名.
<packaging>:打包物的扩展名,一般有JAR,WAR,EAR等
<version>:产品的版本号.
<name>:项目的显示名,常用于Maven生成的文档。
<url>:组织的站点,常用于Maven生成的文档。
<description>:项目的描述,常用于Maven生成的文档。



执行mvn package ,打包后生成的文件名是  artifactId+“-”+version+ packaging

比如 配置如下



<artifactId>pjoName</artifactId>

  <packaging>jar</packaging>

  <version>1.0</version>



打包后文件名为:pjoName-1.0.jar





调试

在pom.xml中配置以下代码

<plugin>

        <groupId>org.mortbay.jetty</groupId>

        <artifactId>maven-jetty-plugin</artifactId>

      </plugin>  



在命令提示符中执行:mvn jetty:run

启动后,在 IE中输入 http://localhost:8080/应用名/

你的项目就能运行了。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics