我们回顾一下maven规范的目录结构:
1、手动搭建Maven项目
我们先使用手动的方式来创建maven项目
(1)在D盘下创建目录mvnproject
并进入该目录,作为我们的操作目录
(2)创建我们的maven项目,创建一个目录project-java
作为我们的项目文件夹,并进入到该目录
(3)创建java代码(源代码)所在目录,即创建src/main/java
(4)创建配置文件所在目录,即创建src/main/resources
(5)创建测试源代码所在目录,即创建src/test/java
(6)创建测试存放配置文件存放目录,即src/test/resources
(7)在src/main/java
中创建一个包(注意在windos文件夹下就是创建目录)com/itheima
,在该目录下创建Demo.java
文件,作为演示所需java程序,内容如下
package com.itheima;
public class Demo{
public String say(String name){
System.out.println("hello "+name);
return "hello "+name;
}
}
(8)在src/test/java
中创建一个测试包(目录)com/itheima
,在该包下创建测试程序DemoTest.java
package com.itheima;
import org.junit.*;
public class DemoTest{
@Test
public void testSay(){
Demo d = new Demo();
String ret = d.say("maven");
Assert.assertEquals("hello maven",ret);
}
}
(9)在project-java/src
下创建pom.xml
文件,编辑如下
<?xml version="1.0" encoding="UTF-8"?>
<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.itheima</groupId>
<artifactId>project-java</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
</project>
通过前面的操作,我们已经搭建好了maven的项目结构,下面要通过maven来构建我们的项目
maven的构建命令以mvn
开头,后面添加功能参数,可以一次性执行多个命令,用空格分离
mvn compile
:编译
mvn clean
:清理
mvn test
:测试
mvn package
:打包
mvn install
:安装到本地仓库
下面我们来进行操作:
(1)在项目project-java
所在的DOS命令窗口下执行mvn compile
进行源码编译,当然首次执行需要先下载相关插件
编辑结果如下:
编译完成后在项目project-java
下多了一个目录target
,在这个目录下就存放的是maven编译好的一些东西
我们可以进入到target
目录查看
其中生成的classes
目录就是编译好的字节码文件
(2)当然如果我们想清理掉这些东西,我们只需执行mvn clean
命令即可,清理掉后target
目录也就消失了
(3)如果我们要执行测试包中的测试程序,我们只需执行mvn test
命令即可
此时在看target
目录会多一些东西
其中产生的test-classes
就是测试代码的字节码文件,surefire-reports
是它产生的测试报告
(4)使用mvn package
命令进行打包,如下
在生成的target
目录中可以看到打包的结果
当然,如果仔细看DOS窗口输出的我们会发现,mvn package
命令的时候maven会把前面两个命令mvn compile,mvn test
都执行一遍
(5)使用mvn install
命令进行安装,将项目打好的包存入本地仓库
仔细查看输出会发现mvn install
命令执行的时候也会将前面的命令都执行一遍
此时我们可以去本地仓库中查找,如何查找?这个很重要
maven是按照groupId/artifactId/version
的结构在本地仓库进行存储
前面我们是通过手动的方式创建的maven项目,相对来说比较的麻烦,maven本身也是这样觉得的,因此maven本身就给我们提供了相关的插件来帮助我们快速构建项目,当然这是一些命令:
这些命令不用记,因为实际操作的时候也用不着,因为实际开发的时候我们基本都是用过一些IDE工具来进行项目开发,这些IDE工具基本都集成了Maven,我们操作起来非常简单。
2、IDEA工具搭建maven项目
2.1、不使用原型创建项目
(1)在IDEA中配置Maven
(2)创建maven工程
(3)填写本项目的坐标
(4)查看各目录颜色标记是否正确
(5)IDEA右侧有一个maven管理界面,可点开查看
(6)在项目的pom.xml文件中添加项目资源依赖
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
(7)创建源代码:com.itheima.Demo
package com.itheima;
public class Demo{
public String say(String name){
System.out.println("hello "+name);
return "hello "+name;
}
}
(8)创建测试代码:com.itheima.DemoTest
package com.itheima;
import org.junit.Assert;
import org.junit.Test;
public class DemoTest{
@Test
public void testSay(){
Demo d = new Demo();
String ret = d.say("maven");
Assert.assertEquals("hello maven",ret);
}
}
然后可以进行测试运行
运行的时候可以编辑运行模板:
然后点击运行:
2.2、使用原型创建项目
-
首先我们来看普通的java工程如何创建:
(1)创建maven项目的时候选择使用原型骨架
(2)创建完成后发现通过这种方式缺少一些目录,如下图
我们需要手动去补全目录,并且要对补全的目录进行标记,切记
-
然后我们在来看web工程如何创建:
(1)选择web对应的原型骨架
有很多的webapp原型骨架,选择哪个基本都差不多,包括前面创建普通项目也是一样,quickstart原型也有很多
(2)和前面创建普通项目一样,通过原型创建web项目得到的目录结构是不全的,因此需要我们自行补全,同时要标记正确,最终需要得到如下结构
(3)web工程创建好之后需要启动运行,需要使用一个tomcat插件来运行我们的项目,在pom.xml
中添加插件的坐标即可,最终改好的pom.xml
如下
<?xml version="1.0" encoding="UTF-8"?>
<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.itheima</groupId> <!--组织id-->
<artifactId>web01</artifactId> <!--项目id-->
<version>1.0-SNAPSHOT</version> <!--版本号:release完成版,snapshot开发版-->
<packaging>war</packaging> <!--打包方式,web工程打包为war,Java工程打包为jar-->
<name>web01 Maven Webapp</name>
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies><!--设置当前工程所有的依赖-->
<dependency><!--具体的依赖-->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<!--构建-->
<build>
<finalName>web01</finalName>
<!--设置插件-->
<plugins>
<!--具体的插件配置-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
</plugin>
</plugins>
</build>
</project>
(4)插件配置好后,在IDEA右侧maven-project
操作面板上可以看到该插件,并且可以利用该插件启动项目
运行后该插件会给我们一个可运行地址:
如果我们想更换端口,只需要在pom.xml
中配置该插件即可
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>80</port>
</configuration>
</plugin>
(5)同时为了运行方便我们也可以创建运行模板: