Maven安装与入门实例

本文转载自:http://blog.csdn.net/evankaka/article/details/47904283

一、Maven安装过程

必备:下载maven之后,安装环境变量,跟安装java环境变量一样,所以也就不再赘述了。安装好之后运行一条命令,mvn help:system,运行之后会下载一些需要的库文件,一般是放在user/.m2/repository目录下,也就是默认的本地仓库的位置。

安装过程如下:

1.在安装maven之前,先确保已经安装JDK1.6及以上版本,并且配置好环境变量。
2.下载maven3,下载地址:http://maven.apache.org/download.html 
下载apache-maven-3.1.1-bin.zip文件后,并解压到 E:\JavaTool\apache-maven-3.3.1
3.配置maven3的环境变量:先配置M2_HOME的环境变量,新建一个系统变量:M2_HOME , 路径是:E:\JavaTool\apache-maven-3.3.1,如图所示:


4、再配置path环境变量,在path值的末尾添加"%M2_HOME%\bin",如下图所示;


5.点击确定之后,打开cmd窗口:输入 mvn -version,出现如下内容表示安装成功,注意3.1.1是对应于jdk1.7以上的版本,所以自己要看好自己电脑jdk的版本


6、配置成功后开始在Eclipse中配置Maven,点击eclipse菜单栏Help->Eclipse Marketplace搜索关键字maven到插件Maven Integration for Eclipse 并点击安装即可,如下图:(可以直接下载J2EE的eclipse编译器。它都帮你集成好了)

7、重启后,为了使得Eclipse中安装的Maven插件,同windows中安装的那个相同,需要让eclipse中的maven重新定位一下,点击Window -> Preference -> Maven -> Installation -> Add进行设置


8、给maven添加本地仓库

maven默认的仓库,是放在C:\Users\lin\.m2\repository,lin可以看成是你的用户名,如果不想放在这里,可以这么改

  • 打开本地存放maven目录(或者maven安装目录,我的安装目录是:E:\JavaTool\apache-maven-3.3.1\conf,这里没多大影响,我只是不同的项目有不同的仓库):比如我的本地存放目录是:E:\JavaTool\apache-maven-3.3.1\conf
  • 打开conf文件夹下的settings.xml文件,找到第53行,把注释去掉,修改成:<localRepository>D:/Util/maven/maven-dependcies</localRepository>当然了,前提是在某个路径下,手动建立了一个名为 maven-dependcies的文件夹,然后把本地仓库指向该路径。

二、初步了解maven

      Maven是一个采用纯Java编写的开 源项目管理工具。Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件,Maven可以管理项目的整个声明周期,包括编 译,构建,测试,发布,报告等等。目前Apache下绝大多数项目都已经采用Maven进行管理。而Maven本身还支持多种插件,可以方便更灵活的控制 项目

1.了解maven的目录结构,在maven的构建过程中,构建的程序必须有特定的目录结构,基本的目录如下所示:


2.对于这个目录的建立,熟练的建立这个目录是必备的,但是这样无助于开发的进度,所以maven自带了一个archetype工具帮助我们自动生成项目的骨架。在cmd中切换到工程的目录,执行命令mvn archetype:generate,就是自动生成需要的目录,在生成的过程中会需要输入一些字段,在下面说明的pom.xml的时候再讲。

3.pom.xml<Project Object Model,项目对象模型>文件,这个文件可以理解为整个项目的控制文件,对于这个文件有一下几个属性需要说明。
<modelVersion> :默认是4.0.0,指定了当前POM模型的版本。
<groupId>:定义了项目属于哪一个组,这个组通常与项目所在的组织或者公司关联,如com.microsoft.myapp, com.google.myapp等等。
<artifactId>:定义了当前maven项目在组中的唯一ID,可以定义为项目的名称如:HelloWorld
<version>:指定当前的版本,如1.0-SNAPSHOT,snapshot是快照的意思,说明该项目还在开发中,是不稳定的版本。
而一般通过archetype工具生成的包名就是groupId+artifactId。

三、新建一个简单的maven项目:maven-hellolworld

1、新建一个Maven项目


2、这里选了quickstart,


3、输入工程名,引用包名


4、自动生成的如下,我们不需要这


pom.xml文件 如下

[html]  view plain  copy
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  3.   <modelVersion>4.0.0</modelVersion>  
  4.   
  5.   <groupId>com.lin.learning</groupId>  
  6.   <artifactId>maven-hellowrold</artifactId>  
  7.   <version>0.0.1-SNAPSHOT</version>  
  8.   <packaging>jar</packaging>  
  9.   
  10.   <name>maven-hellowrold</name>  
  11.   <url>http://maven.apache.org</url>  
  12.   
  13.   <properties>  
  14.     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  15.   </properties>  
  16.   
  17.   <dependencies>  
  18.     <dependency>  
  19.       <groupId>junit</groupId>  
  20.       <artifactId>junit</artifactId>  
  21.       <version>3.8.1</version>  
  22.       <scope>test</scope>  
  23.     </dependency>  
  24.   </dependencies>  
  25. </project>  

5、修改内容

将App.java改成如下

[java]  view plain  copy
  1. package com.lin.learning.maven_hellowrold;  
  2.   
  3. /** 
  4.  * Hello world! 
  5.  * 
  6.  */  
  7. public class App   
  8. {  
  9.       
  10.     public void sayHello(){  
  11.           
  12.          System.out.println( "Hello World!林炳文Evankaka" );  
  13.     }  
  14. }  

再把AppTest.java内容改成如下

[java]  view plain  copy
  1. package com.lin.learning.maven_hellowrold;  
  2.   
  3. import junit.framework.Test;  
  4. import junit.framework.TestCase;  
  5. import junit.framework.TestSuite;  
  6.   
  7. /** 
  8.  * Unit test for simple App. 
  9.  */  
  10. public class AppTest   
  11.     extends TestCase  
  12. {  
  13.     /** 
  14.      * Create the test case 
  15.      * 
  16.      * @param testName name of the test case 
  17.      */  
  18.     public AppTest( String testName )  
  19.     {  
  20.         super( testName );  
  21.     }  
  22.   
  23.     /** 
  24.      * @return the suite of tests being tested 
  25.      */  
  26.     public static Test suite()  
  27.     {  
  28.         return new TestSuite( AppTest.class );  
  29.     }  
  30.   
  31.     /** 
  32.      * Rigourous Test :-) 
  33.      */  
  34.     public void testApp()  
  35.     {  
  36.        App app = new App();  
  37.        app.sayHello();  
  38.     }  
  39. }  

6、测试运行

选 中testApp().然后以Junit的调试方式运行


运行结果:绿色表明案例通过,运行成功




7、打包输出

现在好了,可以把这个文件 打包成jar提供给其它项目使用了,项目右键-》属性



输入以下内容,开始生成 jar


最终输出结果:


表明已构建成功,去仓库看看打包成jar没


jar已打包,其它java项目都可以使用,不管是不是maven项目

四、使用maven项目

这里我要再来新建 一个maven-test项目,并且来添加上一个maven-helloworld的包,从而每次maven-helloworld更新jar包时,maven-test都不用手动去替换jar包,直接update project即可。

同样的过程,还是新建一个maven-test的项目


把app.java改成AppHello,避免和上一个重名



同时将AppHello.java内容改成如下

[java]  view plain  copy
  1. package com.lin.learning.maven_test;  
  2.   
  3. import com.lin.learning.maven_hellowrold.App;  
  4.   
  5. /** 
  6.  * Hello world! 
  7.  * 
  8.  */  
  9. public class AppHello   
  10. {  
  11.     public static void main( String[] args )  
  12.     {  
  13.         App app = new App();  
  14.         app.sayHello();  
  15.     }  
  16. }  

pom.xml文件 添加maven-helloworld的jar包依赖

[html]  view plain  copy
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  3.   <modelVersion>4.0.0</modelVersion>  
  4.   
  5.   <groupId>com.lin.learning</groupId>  
  6.   <artifactId>maven-test</artifactId>  
  7.   <version>0.0.1-SNAPSHOT</version>  
  8.   <packaging>jar</packaging>  
  9.   
  10.   <name>maven-test</name>  
  11.   <url>http://maven.apache.org</url>  
  12.   
  13.   <properties>  
  14.     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  15.   </properties>  
  16.     
  17.   <dependencies>  
  18.     <dependency>  
  19.       <groupId>junit</groupId>  
  20.       <artifactId>junit</artifactId>  
  21.       <version>3.8.1</version>  
  22.       <scope>test</scope>  
  23.     </dependency>  
  24.       
  25.     <dependency>  
  26.     <groupId>com.lin.learning</groupId>  
  27.     <artifactId>maven-hellowrold</artifactId>  
  28.      <version>0.0.1-SNAPSHOT</version>  
  29.     </dependency>      
  30.   </dependencies>  
  31. </project>  

接着,更新下整个maven 工程


选中强制更新


更新好了,直接选中AppHello的main,然后右键运行,输出了结果


如果,这时maven-helloworld更改了内容,比如它的App.java更改成如下。添加一个方法

[java]  view plain  copy
  1. package com.lin.learning.maven_hellowrold;  
  2.   
  3. /** 
  4.  * Hello world! 
  5.  * 
  6.  */  
  7. public class App   
  8. {  
  9.       
  10.     public void sayHello(){  
  11.           
  12.          System.out.println( "Hello World!林炳文Evankaka" );  
  13.     }  
  14.       
  15.     public void sayAll(){  
  16.          System.out.println( "我是林炳文Evankaka、林炳文Evankaka、林炳文Evankaka、林炳文Evankaka、林炳文Evankaka " );  
  17.     }  
  18. }  

这里,maven-test也要用到这个sayall方法。

同理,直接maven->update project就会自动引入新的jar包

然后调用方法如下:

[java]  view plain  copy
  1. package com.lin.learning.maven_test;  
  2.   
  3. import com.lin.learning.maven_hellowrold.App;  
  4.   
  5. /** 
  6.  * Hello world! 
  7.  * 
  8.  */  
  9. public class AppHello   
  10. {  
  11.     public static void main( String[] args )  
  12.     {  
  13.         App app = new App();  
  14.         app.sayHello();  
  15.         app.sayAll();  
  16.     }  
  17. }  
输出结果

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值