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 project module
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Maven中的版本管理
Maven中的版本管理
maven xml apache