手动创建第二个 Maven 项目,用以说明 Maven 的依赖问题。
依赖的范围。
用Maven编译第二个工程。
1.手动搭建另一个 Maven 工程
1)第二个Maven工程的搭建
- 按照之前的 Maven 约定的目录结构,手动搭建另一个 Maven 工程结构如下:
- 用于说明 Maven 的依赖问题。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <?xml version="1.0" ?> <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.cwz.maven</groupId> <artifactId>Hello2</artifactId> <version>0.0.1-SNAPSHOT</version> <name>Hello2</name> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.0</version> <scope>test</scope> </dependency> <dependency> <groupId>com.cwz.maven</groupId> <artifactId>Hello</artifactId> <version>0.0.1-SNAPSHOT</version> <scope>compile</scope> </dependency> </dependencies> </project>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| package com.cwz.maven; public class Hello2 { public String sayHelloToFriend(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 "John"; } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| package com.cwz.maven; import static junit.framework.Assert.assertEquals; import org.junit.Test; import com.cwz.maven.Hello2;
public class Hello2Test { @Test public void testHello2(){ Hello2 hello2 = new Hello2(); String results = hello2.sayHelloToFriend("litingwei"); assertEquals("Hello litingwei! I am John",results); } }
|
2)关于SNAPSHOT与RELEASE
SNAPSHOT:快照,即不稳定版本的意思。
RELEASE:释放、分离、发行,即稳定的发行版本。
2.依赖
1)依赖的基本操作
Maven 在解析依赖时,会先到本地仓库中从查找被依赖的 jar 包。
对于自己开发的 Maven 工程,可以使用 mvn install
命令将该工程安装到本地仓库。
2)依赖的范围
- 【1】compile范围的依赖:
- 【2】test范围的依赖:
- 对主程序无效
- 对测试程序有效
- 不参与打包、不参与部署,例如:junit.jar
- 【3】provided范围的依赖:
- 对主程序、测试程序有效
- 不参与打包和部署,例如:servlet-api.jar
- 一般用于 Maven 的 Web 工程,具体使用可参照下图:
3.用Maven编译第二个工程
- 若是之前在第一个 Hello Maven 工程中,没用使用
mvn install
命令。则在第二个 Hello2 Maven 工程中,直接执行了 mvn compile
命令,会报错如下:
- 虽然说在 pom.xml 中配置了依赖,但是没安装到本地仓库,就会找不到依赖。
- 执行完 install 命令,再执行 compile 命令即可解决上述错误。