eclipse使用maven教程
标签: maven
转载地址:https://blog.csdn.net/u012052268/article/details/78916196
目录
0.什么是maven
参考 https://www.cnblogs.com/whgk/p/7112560.html
我们开发一个项目,或者做一个小demo,比如用SSH框架,那么我们就必须将SSH框架所用的几十个依赖的jar包依次找出来并手动导入,超级繁琐。
上面问题的描述,其实都属于项目与项目之间依赖的问题[A项目使用SSH的所有jar,就说A项目依赖SSH],人为手动的去解决,很繁琐,也不方便,所以使用maven来帮我们管理
Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具[百度百科]
这种又是大白话,如果没明白maven是什么,那么上面这句话跟没说一样,我自己觉得,Maven的核心功能便是合理叙述项目间的依赖关系,通俗点讲,就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包,而这里pom.xml文件对于学了一点maven的人来说,就有些熟悉了,怎么通过pom.xml的配置就可以获取到jar包呢?pom.xml配置文件从何而来?等等类似问题我们需要搞清楚,如果需要使用pom.xml来获取jar包,那么首先该项目就必须为maven项目,maven项目可以这样去想,就是在java项目和web项目的上面包裹了一层maven,本质上java项目还是java项目,web项目还是web项目,但是包裹了maven之后,就可以使用maven提供的一些功能了(通过pom.xml添加jar包)。
所以,根据上一段的描述,我们最终的目的就是学会如何在pom.xml中配置获取到我们想要的jar包,在此之前我们就必须了解如何创建maven项目,maven项目的结构是怎样,与普通java,web项目的区别在哪里,还有如何配置pom.xml获取到对应的jar包等等,这里提前了解一下我们如何通过pom.xml文件获取到想要的jar的,具体后面会详细讲解该配置文件。

为什么通过groupId、artifactId、version三个属性就能定位一个jar包?
加入上面的pom.xml文件属于A项目,那么A项目肯定是一个maven项目,通过上面这三个属性能够找到junit对应版本的jar包,那么junit项目肯定也是一个maven项目,junit的maven项目中的pom.xml文件就会有三个标识符,比如像下图这样,然后别的maven项目就能通过这三个属性来找到junit项目的jar包了。所以,在每个创建的maven项目时都会要求写上这三个属性值的。
1.maven下载与安装与配置
在最新的Eclipse中自带了maven,我们打开,Windows->Preferences,如果会出现下面的画面: 
值得注意的是Embedded内置的默认maven版本是我们即将要修改的,因为这个版本有点老了,这直接导致的后果就是在添加dependences的时候,maven的库不是最新的。
1.1 下载
去maven的官网下载最新版的maven,此时的最新版本为3.5.2,下载地址如下:http://www-eu.apache.org/dist/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.zip。

解压到本地,安装Maven前,先确保已安装JDK,CMD下输入java -version验证是否已安装JDK,如下为我本机的JDK版本: 
1.2 安装
解压到本地目录,比如我的环境中,在本地目录C:\Program Files\Java\apache-maven-3.5.2中.
1.3 配置环境变量
在下面配置一下C:\Program Files\Java\apache-maven-3.5.2\conf目录中的settings.xml文件,更改一下如下配置:
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository -->
<localRepository>C:\Program Files\Java\apache-maven-3.5.2\m2\repository</localRepository>
如果不改的话就在用户目录。
还有个问题,可能有人说需不需要设置maven的环境变量,可以设置,但是如果只是使用Eclipse的maven的插件而不需要使用命令行,就不用了。
(1)设置环境变量:
MAVEN_HOME变量设置为C:\Program Files\Java\apache-maven-3.5.2,即下载下来的maven包解压路径;
另外在PATH变量前面增加%MAVEN_HOME%\bin; 
(2)检验配置是否成功:用win键+R,来打开命令行提示符窗口,即Dos界面,输入mvn –version 若出现以下情况说明配置成功
2.在eclipse中配置
2.1 m2eclipse安装
我本机使用的Eclipse版本已经集成m2eclipse,如果没有集成的话,安装也很简单,有两种方式,
从Eclipse Marketplace上获取m2eclipse并安装:
首先要在Eclipse中安装插件:在Help–>install new software,输入下面地址http://download.eclipse.org/technology/m2e/releases,出现如下页面:

然后就像安装其他插件那样一路下一步就OK了。
这个就是eclipse管理maven的插件。
2.2 配置eclipse
安装好m2eclipse后,一般不使用eclipse自带的maven,而是使用外部我们自己安装的maven版本,
因为Embedded内置的默认maven版本是我们即将要修改的,这个版本有点老了,这直接导致的后果就是在添加dependences的时候,maven的库不是最新的。
操作:在eclipse上只需作如下配置即可,如下图 
然后设置用户settings,这是maven下载库的地址。如下图: 
3 创建一个maven项目
在实际操作中学习maven及其命令操作。
(1)在创建向导中多了maven的相关选项:

(2) 选择默认的工程位置

(3)创建工程,红色是创建普通的maven工程的。粉色是创建web工程的。

(4)填写相关的groupId artifactId version等信息

点击完成就创建好了一个简单的maven工程。
3.1项目的结构
maven的工程一般都是如下的结构:

pom.xml:用于定义或者添加jar包的依赖
src-main:用于存放java源文件
src-test:用于存放测试用例。
也许工程下还会出现target文件夹,这个是用来生成对应的class文件或发布的jar包。
3.2 Eclipse中maven常用的命令
Eclipse中maven常用的命令, 点击Run As就可以发现几个Maven的命令:
Maven Build:
这个命令用于编译Maven工程,执行命令后会在target文件夹中的classes中生成对应的class文件。
使用Build的时候,会让你选此次build的目标goal,下附主要的goal选项:(左边这列是步骤名,同时也是phase的名字,右边是对应的goal):
| 步骤名 | 对应的goal |
|---|---|
| process-resources | resources:resources |
| compile | compiler:compile |
| process-test-resources | resources:testResources |
| test-compile | compiler:testCompile |
| test | surefire:test |
| package | jar:jar |
Maven Clean:删除target文件夹,即删除生成的package包以及class等文件。
Maven Test:先自动进行编译,在运行所有的测试用例。
Maven install:发布生成对应的package包。
注意:
留意上面的命令的作用,build和test都会生成相应的class文件。也就是说,当你新建一个maven工程,或者clean一个maven工程后,如果没有使用这两个命令,直接针对类进行测试,会跑出java.class.notfound的错误。因为此时还没有编译生成class文件,如果有朋友发现这个问题注意一下就好了。(该部分只针对旧版本,新版本如maven3.3是可以自动编译的)
只有使用了上面的两个命令后,才能针对某个类进行单元测试。
3.3 使用maven命令
现在eclipse可以使用自带的run as来进行maven但是对于linux来说还是命令好用,下面通过一个例子演示maven命令的使用。
编译:mvn compile --src/main/java目录java源码编译生成class (target目录下)
测试:mvn test --src/test/java 目录编译
清理:mvn clean --删除target目录,也就是将class文件等删除
打包:mvn package --生成压缩文件:java项目#jar包;web项目#war包,也是放在target目录下
安装:mvn install --将压缩文件(jar或者war)上传到本地仓库
部署|发布:mvn deploy --将压缩文件上传私服
下面我们看项目代码:
一个简单的类com.liuyan.maven.helloword.HelloWorld
package com.liuyan.maven.helloword;
public class HelloWorld {
public String sayHello() {
return "hello maven";
}
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(new HelloWorld().sayHello());
}
}
在此项目的根目录下有一个pom.xml文件,内容是默认的,暂时不用管。
进入控制台,将当前目录cd到与pom.xml同级的文件夹下面(或者使用shift进入)。执行编译命令:
mvn clean compile
执行后造成的结果。就是项目的根路径下出现了一个taget文件夹

里面就是编译后的class类。
需要进行单元测试才能发布出来给大家用。Ok,我们在源码包——src/test/java下面开始编写junit单元测试类。
单元测试代码如下:
package com.liuyan.maven.helloword;
import org.junit.Test;
import org.junit.Assert;
public class TestHelloWorld {
@Test
public void testSayHello() {
HelloWorld helloWorld = new HelloWorld();
Assert.assertEquals(helloWorld.sayHello(), "hello maven");
}
}
之后我们因为使用了junit单元测试,那么就是说我们这个项目依赖了它。修改一下pom.xml文件内容,如下
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.liuyan.maven</groupId>
<artifactId>MavenDemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
进入命令行,执行命令
mvn clean test
执行后观察一下taget文件夹如下图,多出了test-classes文件夹和另外2个咱们暂时不用去管的文件夹。
之后在观察一下本地的临时仓库C:\Users\liuyan.m2\repository,会多出文件夹junit,下载的版本是4.7。
如果我们想把项目打成jar的形式输出出去呢?在项目根目录下执行
mvn clean package
执行后效果如下

生成了一个jar包,至于SNAPSHOT是快照的意思,快照就是项目暂时还不稳定的意思。
打包测试后没问题了,想把此项目当做Maven的本地资源仓库,为其他的项目也能提供服务,可以这么做。
执行命令
mvn clean install
执行后本地的临时库文件多了你自己的这个项目。这样别的项目需要你这个项目提供服务的时候就可以从本地Mavne库中提取相应的jar了。
智能推荐
在eclipse中使用Maven
在eclipse中使用Maven 一.Maven的简介 二. Maven的相关设置 三.eclipse中Maven项目的建立 一.Maven的简介 简介:Maven是基于项目对象模型,可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。 下载地址(http://maven.apache.org/download.cgi) 截图中为Apache官网的Maven下载,点击后即可下载 ...
eclipse使用Maven,配置环境
**1. 打开到window–>Preferences 2.找到Meven,点开看到User Settings 3、更换settings.xml,进行应用 例如:D:\Environments\apache-maven-3.5.4\conf\settings.xml 注意两点: 一、repository的使用与settings.xml的设置有关 settings.xml中设置还用...
使用Eclipse创建Maven项目
Maven介绍 1. Maven是一个项目管理和整合工具 。基于工程对象模型(POM)的概念。 2. 当我们创建一个Maven项目后,就不需要再自己去导入各种jar包了,将需要导入的jar包依赖信息配置在pom.xml中,Maven会根据具体的配置自动地在编译、测试和运行的时候,从本地仓库中导入相应的各种依赖。 3.约定优于配置的思想。 Maven使用约定而不是配置,开发者不需要再关心每一个配置细...
使用Eclipse构建maven项目
一、创建maven项目 1、新建maven项目 2、设置默认工作空间 3、选择maven项目的原型,如图所示 4、创建maven项目的必要参数 5、会生成Maven项目如下 二、更改Maven项目中使用的jre运行环境 (这一步骤,是避免后续报错,也可暂不修改) 1、永久更改修改maven目录下的settings.xml文件 2、增加的内容如下,版本根据自己安装的jdk版本而定。 3、settin...
Eclipse maven配置及使用
参考文章: 1.Eclipse上Maven环境配置使用 (全) 2.Eclipse正确解决Missing artifact jdk.tools:jdk.tools:jar:1.8 一、安装配置Maven: 1.1 从Apache网站 http://maven.apache.org/ 下载并且解压缩安装Apache Maven。 Maven下载地址: http://maven.apache.org/...
猜你喜欢
使用Eclipse创建Maven项目
一、打开Eclipse,File-->New-->Maven Project(如果没有Maven Project选项可以File-->New-->Other-->Maven-->Maven Project),进入项目创建向导,如下图: 二、直接Next,选择一个Archetype,如果你想创建一个普通的Mav...
eclipse配置并使用Maven
3.选中解压后的Maven 然后finish. ,如图新建一个MyMavenRepository文件夹用来存放jar包,我的里面已经有了jar包了。 5.将Maven根目录下的conf文件夹下的settings.xml复制到MyMavenRepository,然后打开此xml 将上面箭头所指示的代码移出来,然后将里面的路径改为我们用来存放jar包仓库的路径就行了 6.回到eclipse,先将我们配...
使用eclipse ,maven install 报错
今天新建了个maven项目,简单写了个代码,打包的时候报下面的错误 报错详情 解决方法 修改 Window–>preferences,选到Java–>Installed JREs ,我这里配置了jdk1.8,勾选jdk1.8 再次进行install,编译报错就没有了...
Mybatis基础(part 1)
一.mybatis调用SQL语句 1.使用XML配置SQL语句 在SqlMapConfig.xml配置数据源并指定映射配置文件的位置(每个DAO对应的XML文件,该文件映射了DAO的全限定类名) 2.使用注解配置sql语句 在SqlMapConfig.xml配置数据源和class属性(指定被注解的dao全限定类名),在DAO上写注解。 用注解来配置,故此处使用class属性指定被注解...
Docker 容器内运行 Dubbo 服务
原文:http://www.aqcoder.com/post/content?id=41 在使用 Docker 容器内运行 Dubbo 服务的时候一个令人很头痛的问题就是服务地址注册。 Docker 容器内有自己的 IP 段,和宿主主机是隔离的,Dubbo 会使用容器内的 IP 注册到 zookeeper 注册中心上。这样其他的服务是无法访问的。 方式一:–host 一个很直接的方案就...
