Maven入门

安装Maven
1.下载
官方下载地址:http://maven.apache.org/download.cgi
当前最新版本是Maven 3.3.3,
选择二进制zip包进行下载后解压即可,Maven是免安装的.



2.配置
主要配置2个环境变量: MAVEN_HOME 和 MAVEN,比如:
MAVEN_HOME : D:\apache-maven-3.3.3
MAVEN : %MAVEN_HOME%\bin 
然后,把MAVEN变量加入到PATH变量中,即在PATH前面加上 %MAVEN%; 

3.验证
在命令行上输入mvn -v或者mvn -version如果和下图所示,则说明安装成功



4.修改本地库路径
打开Maven安装目录下的conf文件夹下的settings.xml,在其中搜索localRepository
该属性最初是被注释掉的,取消其注释并修改localRepository的路径


5.集成到eclipse中
最新的eclipse 4.4中已经内置了maven3.2.1,我们将其指向我们自己安装的maven3.3.3
eclipse->Window->Preferences->Maven->Installations
点击右边的Add...按钮,在Directory中选择Maven的安装目录,然后勾选该版本的maven

然后,在User Settings中,选择我们修改过的settings.xml



创建maven项目

1.命令行方式
首先进入到需要创建项目的目录,比如F:\maven_test
使用如下命令:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

第一次创建的时候,需要下载很多常用的jar,均会下载到localRepository设置的路径中
下载完后会创建my-app这个项目

需要注意的是网上有些教程在创建时使用的archetype:create会报错,从下面网址可以看到archetype:create其实在新版本中已经被废弃了,现在使用的是archetype:generate。This plugin goal has been deprecated,Please use the generate mojo instead.

http://maven.apache.org/archetype/maven-archetype-plugin/create-mojo.html


其目录结构具有标准的形式,其中,src/main/java目录下面是项目的源代码,src/test/java下面是测试代码,根目录下的pom.xml即为POM(项目对象模型)文件.



2.通过eclipse
File->New->Other...->Maven选择Maven Project
点击Next,勾选Create a simple project(skip archetype selection)

继续Next,填写Group Id、Artifact Id信息,最后Finish




最常用的default生命周期phase包含:
validate:验证工程是否正确,所有需要的资源是否可用。 
compile:编译项目的源代码。   
test:使用合适的单元测试框架来测试已编译的源代码,这些测试不需要已打包和布署。 
package:把已编译的代码打包成可发布的格式,比如jar。 
integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。 
verify:运行所有检查,验证包是否有效且达到质量标准。 
install:把包安装到在本地的repository中,可以被其他工程作为依赖来使用。 
Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,共享给其他开发者或工程。 

除了上面的default之外的另两个生命周期
clean:清除先前构建的artifacts(在maven中,把由项目生成的包都叫作artifact)。 
site:为项目生成文档站点。

phases和goals可以按一定的顺序来执行
mvn clean dependency:copy-dependencies package
该命令将先清除项目,然后拷贝依赖,最后把项目打包,当然,在打包之前,会先执行此阶段之前的阶段.如compile,test等.


在src/main/java目录下新建一个包,并创建HelloWorld类

package cn.edu.seu.wip.lx;

public class HelloWorld {
	
	public String sayHello()
	{
		return "Hello World!";
	}

}

同时在src/test/java目录下建立对应的测试类HelloWorldTest

package cn.edu.seu.wip.lx;

import org.junit.Assert;
import org.junit.Test;

public class HelloWorldTest {

	@Test
	public void testSayHello() {
		HelloWorld app = new HelloWorld();
		String result = app.sayHello();
		Assert.assertEquals("Hello World!",result);
	}

}
此时,eclipse可能会提示是否需要把JUnit4加入到build path,选择Not now

这时,由于缺少JUnit依赖,测试类会出现个红叉叉,我们修改pom文件,可以通过可视化界面来添加依赖

有2种方法,方法1直接右键pom.xml选择Maven->Add Dependency,在界面中输入junit后进行选择


方法2,右键pom.xml选择Open With->Maven POM Editor,选择Dependencies


以上操作等价于在pom.xml中加入了下面几行内容

  <dependencies>
  	<dependency>
  		<groupId>junit</groupId>
  		<artifactId>junit</artifactId>
  		<version>4.8.2</version>
  	</dependency>
  </dependencies>

运行
Run As -> Maven build在Goals中填入命令,比如package

如果提示Check $M2_HOME environment的错误,可以在JRE选项卡中VM arguments手动指定maven的安装目录
-Dmaven.multiModuleProjectDirectory=D:\apache-maven-3.3.3

见:http://stackoverflow.com/questions/29285148/eclipse-error-setting-up-maven-project-for-class-exercise-check-m2-home-enviro

之后可能又报错,提示No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

在Window -> Preferences -> Java -> Installed JREs -> Execution Environment设置JDK

见:http://stackoverflow.com/questions/19655184/no-compiler-is-provided-in-this-environment-perhaps-you-are-running-on-a-jre-ra


如果不行,更新下项目,右键项目选择Maven -> Update project...并勾选Force Update ...,最终成功的话将看到如下图所示



Maven仓库
Maven仓库就是存储jar包和一些元数据信息的目录。其中的元数据即pom文件,描述了该jar包属于哪个项目,以及jar包所需的外部依赖。该元数据信息使得Maven可以递归地下载所有的依赖,直到整个依赖树都下载完毕并放到你的本地仓库中。
Maven有三种类型的仓库:
本地仓库
中央仓库
远程仓库
Maven根据以上的顺序去仓库中搜索依赖。首先是本地仓库,然后是中央仓库,最后,如果pom文件中配置了远程仓库,则会去远程仓库中查找。

本地仓库就是开发者电脑上的一个目录。该仓库包含了Maven下载的所有依赖。一般来讲,一个本地仓库为多个不同的项目服务。因此,Maven只需下载一次,即使有多个项目都依赖它(如junit)。
Maven的中央仓库由Maven社区提供。默认情况下,所有不在本地仓库中的依赖都会去这个中央仓库查找。然后Maven会将这些依赖下载到你的本地仓库。访问中央仓库不需要做额外的配置。
远程仓库是位于web服务器上的一个仓库,Maven可以从该仓库下载依赖,就像从中央仓库下载依赖一样。远程仓库可以位于Internet上的任何地方,也可以是位于本地网络中。远程仓库一般用于放置组织内部的项目,该项目由多个项目共享。

当使用Maven构建项目时,会遵循一个构建生命周期。该生命周期分为多个构建阶段,而构建阶段又分为多个构建目标。

有的时候,指定的依赖在Maven的中央仓库里没有。你可以直接下载这些依赖,然后放到Maven的本地仓库。这些依赖必须放到与groupId、 artifactId和version匹配的子目录中。用/替换所有的点(.)并且使用/分隔groupId、artifactId和version,这 就是与该依赖匹配的子目录。


参考:
http://maven.apache.org/guides/getting-started/index.html
http://blog.csdn.net/happyteafriends/article/details/7449642
http://ifeve.com/maven-1/
http://ifeve.com/maven-2/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值