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 是一款非常流行的 Java 项目的构建管理和依赖管理工具。它可以帮助开发者自动化构建过程,简化项目管理和部署流程。通过使用 Maven,开发者可以轻松地管理...
maven学习文档,包含常见错误和docker的集成,包含多模块开发,不同的profile的开发,和一些插件基础属性说明
** Maven 概述 ** Maven 是一个强大的项目管理和构建工具,主要应用于Java项目。它通过提供一套统一的构建过程和约定,简化了项目的构建、依赖管理以及文档生成。Maven 的核心理念是“约定优于配置”,即在不进行...
【Maven 3.0 学习文档】 Maven 是一个强大的项目管理和自动化构建工具,主要应用于Java项目。它的核心理念是Project Object Model (POM),这是一个XML格式的配置文件,用于描述项目的元数据,包括项目的依赖、构建...
Maven3.0学习文档 Maven入门教程 1.1.介绍、环境配置 1.21.2.第一个Maven演示 1.5.Maven与Eclipse整合
** Maven 概述 ** Maven 是一个强大的项目管理和构建工具,主要应用于Java开发环境。由Apache软件基金会开发,它的核心理念是通过提供一个标准化的项目对象模型(Project Object Model,POM)来管理项目的构建、...
maven学习文档
中文版文档能够帮助中国开发者无障碍地理解Maven的工作原理,从而更高效地学习和应用。 "Maven 3.3.5绿色版"是Maven的一个便携式版本,无需安装即可使用。它包含了运行Maven所需的所有组件,包括Java运行环境和...
学习 Maven API 文档有助于开发者深入理解 Maven 的工作原理,更高效地进行项目构建和依赖管理。对于初学者,通过查阅文档,可以快速定位和解决问题,提升开发效率。同时,结合实际项目如 `hibernate-generic-dao` ...
maven高级, 作用:1.管理jar包 自动下载 2. 一键编译/打包等
### Maven项目管理工具知识点 #### Maven简介 - **定义**:Maven是Apache下的一个开源项目,...通过对Maven的学习与应用,可以更好地管理复杂的Java项目,实现自动化构建,从而让开发者更加专注于核心业务逻辑的开发。
### Maven详解 #### Maven概述 Maven是一款由Apache组织维护的跨平台项目管理工具,主要用于基于Java...通过对Maven的学习和实践,开发者能够更好地管理项目依赖,规范项目结构,从而提升软件项目的质量和稳定性。
** Maven学习资源整理** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和依赖管理过程。本资源包是为初学者和有经验的开发者准备的一系列Maven学习资料,旨在帮助你更好地理解和...
本教程"maven学习.zip"主要关注的是Maven插件的使用,下面将详细介绍Maven插件及其在实际开发中的应用。 **1. Maven插件的概念** Maven插件是Maven生态系统的核心组成部分,它们提供了各种功能,如编译源代码、打包...
### Maven使用文档知识点详解 #### 一、Maven概述 **Maven定义:** ...通过以上内容的学习,您可以全面了解Maven的基本概念、安装配置方法以及如何在Eclipse中集成Maven进行高效的项目管理和构建。