Maven使用教程
第一个Maven项目
必须遵守Maven的约定:
–src/main/java ——存放项目的.java文件
–src/main/resources ——存放项目资源文件,如spring, hibernate配置文件
–src/test/java ——存放所有测试.java文件,如JUnit测试类
–src/test/resources —— 测试资源文件
–target —— 项目输出位置
–pom.xml
第一个Maven项目步骤:
第一步:首先建立Hello项目同时建立Maven约定的目录结构
Hello
–src
------main
---------java
---------resources
------test
---------java
---------resources
–pom. xml
第二步:在项目Hello根目录建立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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.rjxy.maven</groupId> <artifactId>Hello</artifactId> <version>0.0.1-SNAPSHOT</version> <name>Hello</name> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>test</scope> </dependency> </dependencies> </project>
第三步:在Hello/src/main/java/cn/rjxy/maven目录下新建Hello.java
package cn.rjxy.maven; public class Hello{ public String sayHello(String name){ return "Hello " + name + "!"; } }
第四步:在/Hello/src/test/java/cn/rjxy/maven目录下新建HelloTest.java
package cn.rjxy.maven; import org.junit.Test; import static junit.framework.Assert.*; public class HelloTest{ @Test public void testHello(){ Hello hello = new Hello(); String results = hello.sayHello("limao"); assertEquals("Hello limao!",results); } }
第五步:cmd命令窗口执行命名
- 打开cmd命令行,进入Hello项目根目录执行mvn compile(编译)命令,查看根目录变化
生成了target目录
- cmd中继续录入mvn clean命令再次查看根目录变化
将根目录下生成的target文件移除
- cmd中输入mvn clean compile命令查看根目录变化
执行顺序:
1、使用清理插件:maven-clean-plugin:2.5执行清理删除已有target目录(版本2.5)
2、使用资源插件:maven-resources-plugin:2.6执行资源文件的复制等(版本2.6)
3、使用编译插件:maven-compiler-plugin:3.1编译所有源文件生成class文件至target\classes目录下(版本3.1)
4、整个编译过程完成。
- cmd中输入mvn clean test命令查看根目录变化
clean表明将你上一次编译生成的一些文件删去,test表明只履行测验代码
- cmd中输入mvn clean package命令,查看根目录变化
执行顺序:
1、使用清理插件:maven-clean-plugin:2.5执行清理删除已有target目录(版本2.5)
2、使用资源插件:maven-resources-plugin:2.6执行资源文件的处理(版本2.6)
3、使用编译插件:maven-compiler-plugin:3.1编译所有源文件生成class文件至target\classes目录下(版本3.1)
4、使用资源插件:maven-resources-plugin:2.6执行测试资源文件的处理(版本2.6)
5、使用编译插件:maven-compiler-plugin:3.1编译测试目录下的所有源代码(版本3.1)
6、使用插件:maven-surefire-plugin:2.12运行测试用例(版本2.12)
7、使用插件:maven-jar-plugin:2.4对编译后生成的文件进行打包,包名称默认为:artifactId-version,比如本例生成的jar文件:Hello-0.0.1-SNAPSHOT.jar,包文件保存在target目录下(这个生成的包不能在命令行中直接执行,因为我们还没有入口类配置到资源配置文件中去,后续会阐述)。
第二个Maven项目
第六步:建立HelloFriend项目同时建立Maven约定的目录结构
HelloFriend
–src
------main
---------java
---------resources
------test
---------java
---------resources
–pom. xml
第七步:在项目HlloFriend根目录建立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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.rjxy.maven</groupId> <artifactId>HelloFriend</artifactId> <version>0.0.1-SNAPSHOT</version> <name>HelloFriend</name> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>test</scope> </dependency> <dependency> <groupId>cn.rjxy.maven</groupId> <artifactId>Hello</artifactId> <version>0.0.1-SNAPSHOT</version> <scope>compile</scope> </dependency> </dependencies> </project>
第八步:在/HelloFriend/src/main/java/cn/rjxy/maven目录下新建HelloFriend.java
package cn.rjxy.maven; public class HelloFriend { public String sayHelloFriend(String name){ Hello hello = new Hello (); String str = hello.sayHello(name) + " I am " + this.getMyName(); System.out.println(str); return str; } public String getMyName(){ return "Zsr"; } }
第九步:在/HelloFriend/src/test/java/cn/rjxy/maven目录下新建HelloFriendTest.java
package cn.rjxy.maven; import org.junit.Test; import static junit.framework.Assert.*; public class HelloFriendTest{ @Test public void testHelloFriend(){ HelloFriend helloFriend = new HelloFriend(); String results = helloFriend.sayHelloFriend("Zsr"); assertEquals("Hello Zsr! I am Zsr",results); } }
第十步:在HelloFriend目录下执行mvn package
我这里没有出现问题,如果说系统报错出现说没有找到依赖。就需要重新构建Hello项目并安装到数据仓库,在命令行Hello的根目录下执行mvn clean install。之后再HelloFriend目录下执行命令mvn package就会出现我的这个界面了。