感谢林炳文Evankakahttp://blog.csdn.net/evankaka/article/details/47904283的教程。根据他的教程自己写了一遍,记录下来。
本文着重傻瓜式速成教程,先上手,后研究。不要问为什么,Follow Me,先来体验一下maven的快感!
一、maven开发01-安装与配置
1、下载maven安装包
去https://maven.apache.org/下载apache-maven-3.5.0-bin.zip,解压即可使用。
2、maven环境变量配置
新建环境变量MAVEN_HOME(值为maven的根目录)、
然后在PATH环境变量里加入%MAVEN_HOME%\bin;即可。
3、检验是否配置成功
运行cmd 输入 mvn -version
若如图所示 显示版本信息 则说明安装和配置成功
至此,maven已经安装成功。
我们这里先不去关系maven的命令操作。
4、配置本地仓库。
打开apache-maven-3.5.0\conf下setting.xml文件,localRepository的值设置成你本地仓库的路径。
5、maven配置到eclipse上
j2ee的eclipse已经默认集成了maven插件(如果没有,手工安装:Help–>Eclipse Marketplace搜索关键字maven到插件Maven Integration for Eclipse 并点击安装即可,重启eclipse,可以看到Window→ Preferences→Maven的选项)
然后,Windows–>Prefrences–>Maven–>Installations–>Add。installation home选maven的根目录,提交。
然后,Windows–>Prefrences–>Maven–>User Setting–>Browse。选中maven目录conf下的setting.xml文件。
至此 maven安装配置完成!
二、初步了解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版的helloworld
1,新建一个maven项目
New Project -->Maven-->Maven Project
New Project -->Maven-->Maven Project
2,Archetype选择maven-archetype-quickstart
3,输入包名,工程名
4,得到的工程结构如下
5,修改App.java
package com.andy.learning.maven_helloworld;
/**
* Hello world!
*
*/
public class App {
public static void main(String[] args) {
System.out.println("Hello World!");
}
public void sayHello(){
System.out.println("say Hello World!");
}
}
修改AppTest.java
package com.andy.learning.maven_helloworld;
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()
{
// assertTrue( true );
App app = new App();
app.sayHello();
}
}
7, 进行单元测试
8,打包输出jar文件,供其他项目使用
输入 clean install 命令
构建成功,console输出:
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ maven-helloworld ---
[INFO] Building jar: E:\Andy_software\workSpace\maven-helloworld\target\maven-helloworld-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ maven-helloworld ---
[INFO] Installing E:\Andy_software\workSpace\maven-helloworld\target\maven-helloworld-0.0.1-SNAPSHOT.jar to E:\Andy_software\maven\localRepository\com\andy\learning\maven-helloworld\0.0.1-SNAPSHOT\maven-helloworld-0.0.1-SNAPSHOT.jar
[INFO] Installing E:\Andy_software\workSpace\maven-helloworld\pom.xml to E:\Andy_software\maven\localRepository\com\andy\learning\maven-helloworld\0.0.1-SNAPSHOT\maven-helloworld-0.0.1-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.265 s
[INFO] Finished at: 2017-09-06T11:47:22+08:00
[INFO] Final Memory: 16M/219M
[INFO] ------------------------------------------------------------------------
根据输出信息,查看生成的jar包
9,使用jar包
新建一个maven-test项目,并修改App.java如下,避免重名
pom.xml文件 添加maven-helloworld的jar包依赖
<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.andy.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.andy.learning</groupId>
<artifactId>maven-helloworld</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
更新maven工程
更新好了,直接选中AppHello的main,然后右键运行,输出了结果
时maven-helloworld更改了内容,比如它的App.java添加一个方法sayHello2();打包发布jar后;
同理,maven-test工程直接maven->update project就会自动引入新的jar包,就可以调用新添加的方法。