目录
扫描二维码关注公众号,回复:
10279776 查看本文章
1 依赖
即
A
工程开发或运行过程中需要
B
工程提供支持,则代表
A
工程依赖
B
工程。在这种情况下,需要在 pom.xml
文件中增加下属配置定义依赖关系
<dependencies>
<!-- 定义一个具体的依赖 -->
<dependency>
<!-- 依赖的工程所在组名 -->
<groupId>groupName</groupId>
<!-- 依赖的工程名 -->
<artifactId>artifactName</artifactId>
<!-- 依赖的工程版本 -->
<version>versionNo</version>
<!-- 依赖的工程有效范围,其可选值有:
compile - 编译中有效
runtime - 运行中有效
system - 全部中有效[默认]
provided - 当前工程中有效.
test - 只在测试有效
-->
<scope>system</scope>
</dependency>
</dependencies>
1.1 去maven仓库去找依赖
1.2 找到之后选择版本
1.3 复制粘贴到自己的项目中
<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.bjsxt</groupId>
<artifactId>01mavendemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
1.4更新maven项目
1.5 依赖自己的项目
package com.zgl;
public class Users {
private String username;
private String usersex;
private int userage;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUsersex() {
return usersex;
}
public void setUsersex(String usersex) {
this.usersex = usersex;
}
public int getUserage() {
return userage;
}
public void setUserage(int userage) {
this.userage = userage;
}
@Override
public String toString() {
return "Users [username=" + username + ", usersex=" + usersex + ", userage=" + userage + "]";
}
public Users(String username, String usersex, int userage) {
super();
this.username = username;
this.usersex = usersex;
this.userage = userage;
}
public Users() {
super();
}
}
1.6 pom复制粘贴依赖
1.7 粘贴到项目2
1.8 测试是否成功导入
package com.zgl;
public class Hello {
public static void main(String[] args) {
Users user=new Users();
user.setUserage(20);
user.setUsername("admin");
user.setUsersex("man");
System.out.println(user);
}
}
1.9 运行效果:
1.10 总结:
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
对这个问题其实报错中已经说的很清楚了,看第一条最后的 Perhaps you are running on a JRE rather than a JDK?
就是说你可能编译在一个JRE而不是JDK上,maven 编译是要JDK的,可能你的编译器配置了一个jre路径。
2 继承
如果A 工程继承B 工程,则代表 A 工程默认依赖 B 工程依赖的所有资源,且可以应用B 工程中定义的所有资源信息。被继承的工程(B 工程)只能是POM 工程。
2.1 创建pom工程
2.2 很明显父工程少很多就是一个逻辑工程
2.3 之后配置pom文件进行统一的依赖管理
<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.bjsxt</groupId>
<artifactId>03parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<junit-version>4.1</junit-version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit-versin}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
方便于以后版本的修改
2.4 子工程集成父工程
2.5 查看子工程pom
此时写入依赖不必要给版本号即可
好处就是如果你多个子工程继承了父工程只需要改一处即可!
2.6 总结:
继承加强了资源的管理!
3 聚合
当我们开发的工程拥有 2 个以上模块的时候,每个模块都是一个独立的功能集合。比如某大学系统中拥有搜索平台,学习平台,考试平台等。开发的时候每个平台都可以独立编译, 测试,运行。这个时候我们就需要一个聚合工程。
在创建聚合工程的过程中,总的工程必须是一个POM 工程(Maven Project),各子模块可以是任意类型模块(Maven Module)。所有聚合工程和聚合模块必须处于同一个组(groupId)中,且聚合工程可以嵌套。
3.1 创建聚合项目
3.2 创建模块
可以看出选中之后聚合都是无法更改的
此时出现两个,下面内个其实是快捷方式方便开发!
3.3 在创建一个进行打包
这时就会一起被打包
3.4 总结:
聚合其实就是对项目管理的一种方式,高内聚低耦合的一种方式,比较好理解和实现!