SSM搭建-Maven安装与Maven HelloWorld入门实例(21)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/nimiky/article/details/53011375

SSM搭建过程中,许多的jar包需要管理,现实工作中采用的也大多是Maven的管理方式。因此在这个系列中穿插这三篇的Maven的概述,很多东西我直接就从IDE入手,如果有想深入了解maven的,可以搜索教程,从dos界面入手,对Maven会有个更深刻的了解。

接下来三章分别的内容是,Maven的入门,从基础知识到第一个案例,再到web项目的Maven管理,最后是基于Maven的Spring mvc管理。

文章主题采用博主林炳文Evankaka原创文章,中间加入自己理解及学习中遇到的细节。

一、初步了解maven.

      Maven从我个人的角度来讲,就像是一个仓库保管调度员,我们之前所做的开发所需要的jar包都需要自己导入并且加入path中。而使用Maven开发工程,就是将我们的工程置于Maven的仓库中,需要什么jar包直接跟保管员说(在Pom.xml文件中配置),他负责调度,Maven中有两个仓库,一个是本地仓库,就是你电脑上的路径,你指定的jar包Maven都会下载好之后存到这个仓库里,另外一个是中心仓库,即Maven的全球化仓库,这个仓库中有几乎全部的Jar包,一旦本地仓库中,没有相应的Jar包,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之后,安装环境变量,跟安装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编译器。它都帮你集成好了)



选中I accept ...后,点Finish后,出现 Install Stoftware等待下载安装。

等待安装完成后,重启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-hellolworld

1、新建一个Maven项目


2、这里选了quickstart,


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


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


pom.xml文件 如下

<span style="font-size:14px;"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.lin.learning</groupId>
  <artifactId>maven-hellowrold</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>maven-hellowrold</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
</span>

5、修改内容

将App.java改成如下

<span style="font-size:14px;">package com.lin.learning.maven_hellowrold;

/**
 * Hello world!
 *
 */
public class App 
{
    
    public void sayHello(){
    	
    	 System.out.println( "Hello World!林炳文Evankaka" );
    }
}
</span>

再把AppTest.java内容改成如下

<span style="font-size:14px;">package com.lin.learning.maven_hellowrold;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

/**
 * Unit test for simple App.
 */
public class AppTest 
    extends TestCase
{
    /**
     * Create the test case
     *
     * @param testName name of the test case
     */
    public AppTest( String testName )
    {
        super( testName );
    }

    /**
     * @return the suite of tests being tested
     */
    public static Test suite()
    {
        return new TestSuite( AppTest.class );
    }

    /**
     * Rigourous Test :-)
     */
    public void testApp()
    {
       App app = new App();
       app.sayHello();
    }
}
</span>

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

<span style="font-size:14px;">package com.lin.learning.maven_test;

import com.lin.learning.maven_hellowrold.App;

/**
 * Hello world!
 *
 */
public class AppHello 
{
    public static void main( String[] args )
    {
        App app = new App();
        app.sayHello();
    }
}
</span>

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

<span style="font-size:14px;"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.lin.learning</groupId>
  <artifactId>maven-test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>maven-test</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
    <groupId>com.lin.learning</groupId>
    <artifactId>maven-hellowrold</artifactId>
     <version>0.0.1-SNAPSHOT</version>
    </dependency>    
  </dependencies>
</project>
</span>

接着,更新下整个maven 工程


选中强制更新


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


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

<span style="font-size:14px;">package com.lin.learning.maven_hellowrold;

/**
 * Hello world!
 *
 */
public class App 
{
    
    public void sayHello(){
    	
    	 System.out.println( "Hello World!林炳文Evankaka" );
    }
    
    public void sayAll(){
    	 System.out.println( "我是林炳文Evankaka、林炳文Evankaka、林炳文Evankaka、林炳文Evankaka、林炳文Evankaka " );
    }
}</span>

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

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

然后调用方法如下:

<span style="font-size:14px;">package com.lin.learning.maven_test;

import com.lin.learning.maven_hellowrold.App;

/**
 * Hello world!
 *
 */
public class AppHello 
{
    public static void main( String[] args )
    {
        App app = new App();
        app.sayHello();
        app.sayAll();
    }
}
</span>
输出结果



没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试