`
yeweimian123
  • 浏览: 42837 次
  • 性别: 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/应用名/

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

相关推荐

    Maven学习文档

    ### Maven 学习文档知识点详解 #### 一、Maven简介 Maven 是一款非常流行的 Java 项目的构建管理和依赖管理工具。它可以帮助开发者自动化构建过程,简化项目管理和部署流程。通过使用 Maven,开发者可以轻松地管理...

    maven学习文档.docx

    maven学习文档,包含常见错误和docker的集成,包含多模块开发,不同的profile的开发,和一些插件基础属性说明

    Maven学习文档及安装包

    ** Maven 概述 ** Maven 是一个强大的项目管理和构建工具,主要应用于Java项目。它通过提供一套统一的构建过程和约定,简化了项目的构建、依赖管理以及文档生成。Maven 的核心理念是“约定优于配置”,即在不进行...

    Maven3.0学习文档

    【Maven 3.0 学习文档】 Maven 是一个强大的项目管理和自动化构建工具,主要应用于Java项目。它的核心理念是Project Object Model (POM),这是一个XML格式的配置文件,用于描述项目的元数据,包括项目的依赖、构建...

    Maven3.0学习文档.doc

    Maven3.0学习文档 Maven入门教程 1.1.介绍、环境配置 1.21.2.第一个Maven演示 1.5.Maven与Eclipse整合

    maven学习帮助文档

    ** Maven 概述 ** Maven 是一个强大的项目管理和构建工具,主要应用于Java开发环境。由Apache软件基金会开发,它的核心理念是通过提供一个标准化的项目对象模型(Project Object Model,POM)来管理项目的构建、...

    Maven学习.zip

    maven学习文档

    maven中文文档和maven免安装版

    中文版文档能够帮助中国开发者无障碍地理解Maven的工作原理,从而更高效地学习和应用。 "Maven 3.3.5绿色版"是Maven的一个便携式版本,无需安装即可使用。它包含了运行Maven所需的所有组件,包括Java运行环境和...

    maven api 文档

    学习 Maven API 文档有助于开发者深入理解 Maven 的工作原理,更高效地进行项目构建和依赖管理。对于初学者,通过查阅文档,可以快速定位和解决问题,提升开发效率。同时,结合实际项目如 `hibernate-generic-dao` ...

    Maven进阶笔记.md

    maven高级, 作用:1.管理jar包 自动下载 2. 一键编译/打包等

    Maven3.3.9安装文档

    ### Maven项目管理工具知识点 #### Maven简介 - **定义**:Maven是Apache下的一个开源项目,...通过对Maven的学习与应用,可以更好地管理复杂的Java项目,实现自动化构建,从而让开发者更加专注于核心业务逻辑的开发。

    maven资料,详细总结文档

    ### Maven详解 #### Maven概述 Maven是一款由Apache组织维护的跨平台项目管理工具,主要用于基于Java...通过对Maven的学习和实践,开发者能够更好地管理项目依赖,规范项目结构,从而提升软件项目的质量和稳定性。

    maven学习资源整理

    ** Maven学习资源整理** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和依赖管理过程。本资源包是为初学者和有经验的开发者准备的一系列Maven学习资料,旨在帮助你更好地理解和...

    maven学习.zip

    本教程"maven学习.zip"主要关注的是Maven插件的使用,下面将详细介绍Maven插件及其在实际开发中的应用。 **1. Maven插件的概念** Maven插件是Maven生态系统的核心组成部分,它们提供了各种功能,如编译源代码、打包...

    maven使用文档

    ### Maven使用文档知识点详解 #### 一、Maven概述 **Maven定义:** ...通过以上内容的学习,您可以全面了解Maven的基本概念、安装配置方法以及如何在Eclipse中集成Maven进行高效的项目管理和构建。

Global site tag (gtag.js) - Google Analytics