Maven安装与Maven HelloWorld入门实例

林炳文Evankaka原创作品。转自https://blog.csdn.net/Evankaka/article/details/47904283

摘要:本文主要讲了Maven的安装过程,以及一些基础的概念。并用两个例子讲解了Maven在java项目中的使用。

一、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文件 如下


    
    
  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. <groupId>com.lin.learning </groupId>
  5. <artifactId>maven-hellowrold </artifactId>
  6. <version>0.0.1-SNAPSHOT </version>
  7. <packaging>jar </packaging>
  8. <name>maven-hellowrold </name>
  9. <url>http://maven.apache.org </url>
  10. <properties>
  11. <project.build.sourceEncoding>UTF-8 </project.build.sourceEncoding>
  12. </properties>
  13. <dependencies>
  14. <dependency>
  15. <groupId>junit </groupId>
  16. <artifactId>junit </artifactId>
  17. <version>3.8.1 </version>
  18. <scope>test </scope>
  19. </dependency>
  20. </dependencies>
  21. </project>

5、修改内容

将App.java改成如下


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

再把AppTest.java内容改成如下


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

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内容改成如下


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

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


    
    
  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. <groupId>com.lin.learning </groupId>
  5. <artifactId>maven-test </artifactId>
  6. <version>0.0.1-SNAPSHOT </version>
  7. <packaging>jar </packaging>
  8. <name>maven-test </name>
  9. <url>http://maven.apache.org </url>
  10. <properties>
  11. <project.build.sourceEncoding>UTF-8 </project.build.sourceEncoding>
  12. </properties>
  13. <dependencies>
  14. <dependency>
  15. <groupId>junit </groupId>
  16. <artifactId>junit </artifactId>
  17. <version>3.8.1 </version>
  18. <scope>test </scope>
  19. </dependency>
  20. <dependency>
  21. <groupId>com.lin.learning </groupId>
  22. <artifactId>maven-hellowrold </artifactId>
  23. <version>0.0.1-SNAPSHOT </version>
  24. </dependency>
  25. </dependencies>
  26. </project>

接着,更新下整个maven 工程


选中强制更新


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


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


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

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

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

然后调用方法如下:


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



林炳文Evankaka原创作品。转自https://blog.csdn.net/Evankaka/article/details/47904283

摘要:本文主要讲了Maven的安装过程,以及一些基础的概念。并用两个例子讲解了Maven在java项目中的使用。

一、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文件 如下


  
  
  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. <groupId>com.lin.learning </groupId>
  5. <artifactId>maven-hellowrold </artifactId>
  6. <version>0.0.1-SNAPSHOT </version>
  7. <packaging>jar </packaging>
  8. <name>maven-hellowrold </name>
  9. <url>http://maven.apache.org </url>
  10. <properties>
  11. <project.build.sourceEncoding>UTF-8 </project.build.sourceEncoding>
  12. </properties>
  13. <dependencies>
  14. <dependency>
  15. <groupId>junit </groupId>
  16. <artifactId>junit </artifactId>
  17. <version>3.8.1 </version>
  18. <scope>test </scope>
  19. </dependency>
  20. </dependencies>
  21. </project>

5、修改内容

将App.java改成如下


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

再把AppTest.java内容改成如下


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

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内容改成如下


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

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


  
  
  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. <groupId>com.lin.learning </groupId>
  5. <artifactId>maven-test </artifactId>
  6. <version>0.0.1-SNAPSHOT </version>
  7. <packaging>jar </packaging>
  8. <name>maven-test </name>
  9. <url>http://maven.apache.org </url>
  10. <properties>
  11. <project.build.sourceEncoding>UTF-8 </project.build.sourceEncoding>
  12. </properties>
  13. <dependencies>
  14. <dependency>
  15. <groupId>junit </groupId>
  16. <artifactId>junit </artifactId>
  17. <version>3.8.1 </version>
  18. <scope>test </scope>
  19. </dependency>
  20. <dependency>
  21. <groupId>com.lin.learning </groupId>
  22. <artifactId>maven-hellowrold </artifactId>
  23. <version>0.0.1-SNAPSHOT </version>
  24. </dependency>
  25. </dependencies>
  26. </project>

接着,更新下整个maven 工程


选中强制更新


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


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


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

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

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

然后调用方法如下:


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



猜你喜欢

转载自blog.csdn.net/weixin_42581112/article/details/88897706