五.Maven工程之间相互调用
通过Maven命令自动创建约定的目录结构
1.创建工程
- 进入到存放Maven工程的工作空间中
- 该工作空间必须是一个目录,不能是一个Maven项目
- 当前目录中不能存在pom.xml文件
- 在该目录下的终端中执行命令构建Maven工程
mvn archetype:generate
- 命令执行完成之后会出现许多的选项
- 不同的远程仓库出现的选项的序号是不一样的
- 这些选项表示的是各种Maven的骨架模型
- 每一种选项都会提供一个默认,直接回车即表示选择使用默认值
- 根据默认值创建出来的是一个Java工程
- 其骨架模型为:
maven-archetype-quickstart
- 选择对应的骨架模型之后,会要求用户输入一些必备信息
- groupId:需要用户主动指定
- artifactId:需要用户主动指定
- version:可以主动指定,也可以使用提供的默认
- package:指定当前工程中的包结构,默认使用的与groupId一致
- 当所有选项输入完毕之后,会需要确认这些信息是否正确
- 如果确定了,输入Y即可
2.调用其他Maven工程
2-1 HelloFriend
package com.itany.maven;
public class HelloFriend{
public String sayHelloToFriend(String name){
HelloMaven hm = new HelloMaven();
String result = hm.sayHello()+",I am "+name;
return result;
}
}
2-2 TestFriend
package com.itany.maven;
import org.junit.Test;
import static org.junit.Assert.*;
public class TestFriend{
@Test
public void test(){
HelloFriend hf = new HelloFriend();
String result = hf.sayHelloToFriend("admin");
assertEquals("Hello Maven, I am admin",result);
}
}
2-3 pom.xml
当调用另一个Maven工程的时候
会根据配置中的依赖去本地仓库进行查找
如果没有找到,会去远程仓库进行查询
如果本地仓库与远程仓库均没有找到,将会报错
因此,如果需要调用对应的Maven工程
必须将对应的Maven工程安装到仓库中才能被调用
<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.itany.maven</groupId>
<artifactId>HelloFriend</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>HelloFriend</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>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.itany.maven</groupId>
<artifactId>hello</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>