第一个Maven工程的目录结构和文件内容及联网问题
【第一个Maven工程】
①目录结构
Hello
|---src
|---|---main
|---|---|---java
|---|---|---resources
|---|---test
|---|---|---java
|---|---|---resources
|---pom.xml
②POM文件内容
1 <?xml version="1.0" ?> 2 <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"> 3 <modelVersion>4.0.0</modelVersion> 4 5 <groupId>com.atguigu.maven</groupId> 6 <artifactId>Hello</artifactId> 7 <version>0.0.1-SNAPSHOT</version> 8 9 <name>Hello</name> 10 11 <dependencies> 12 <dependency> 13 <groupId>junit</groupId> 14 <artifactId>junit</artifactId> 15 <version>4.0</version> 16 <scope>test</scope> 17 </dependency> 18 </dependencies> 19 </project>
③编写主程序代码
在src/main/java/com/atguigu/maven目录下新建文件Hello.java
1 package com.hk.maven; 2 public class Hello { 3 public String sayHello(String name){ 4 return "Hello "+name+"!"; 5 } 6 }
④编写测试代码
在/src/test/java/com/atguigu/maven目录下新建测试文件HelloTest.java
1 package com.hk.maven; 2 import org.junit.Test; 3 import static junit.framework.Assert.*; 4 public class HelloTest { 5 @Test 6 public void testHello(){ 7 Hello hello = new Hello(); 8 String results = hello.sayHello("litingwei"); 9 assertEquals("Hello litingwei!",results); 10 } 11 }
⑤运行几个基本的Maven命令
mvn compile 编译
mvn clean 清理
mvn test 测试
mvn package 打包
注意:运行Maven命令时一定要进入pom.xml文件所在的目录!
运行compile:
【关于联网问题】
①Maven的核心程序中仅仅定义了抽象的生命周期,但是具体的工作必须由特定的插件来完成。而插件本身并不包含在Maven的核心程序中。
②当我们执行的Maven命令需要用到某些插件时,Maven核心程序会首先到本地仓库中查找。
③本地仓库的默认位置:【系统中当前用户的家目录】\.m2\repository
C:\Users\zhz\.m2\repository
④Maven核心程序如果在本地仓库中找不到需要的插件,那么它会自动连接外网到中央仓库去下载。
⑤如果此时无法连接外网,则构建失败。
⑥修改默认本地仓库的位置可以让Maven核心程序到我们事先准备好的目录下查找插件。
[1]找到Maven的解压目录\conf\settings.xml
[2]在settings.xml文件中找到localRepository标签
[3]将<localRepository>/path/to/local/repo</localRepository>从注释中取出
[4]将标签体内容修改为已经准备好的Maven仓库目录