Maven工程关系快速理解

简介: Maven工程关系快速理解

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.去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项目

2.1依赖自己的项目

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();
  }
}

2.2pom复制粘贴依赖

2.3粘贴到项目2

2.4测试是否成功导入

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);
}
}

运行效果:

总结:

解决Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project autotest_fchtgl: Compilation failure的方法


[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.3子工程集成父工程

2.4查看子工程pom

此时写入依赖不必要给版本号即可

好处就是如果你多个子工程继承了父工程只需要改一处即可!

总结:

继承加强了资源的管理!

3.聚合

当我们开发的工程拥有 2 个以上模块的时候,每个模块都是一个独立的功能集合。比如某大学系统中拥有搜索平台,学习平台,考试平台等。开发的时候每个平台都可以独立编译, 测试,运行。这个时候我们就需要一个聚合工程。


在创建聚合工程的过程中,总的工程必须是一个POM 工程(Maven Project),各子模块可以是任意类型模块(Maven Module)。所有聚合工程和聚合模块必须处于同一个组(groupId)中,且聚合工程可以嵌套。

3.1创建聚合项目

3.2创建模块

可以看出选中之后聚合都是无法更改的


此时出现两个,下面内个其实是快捷方式方便开发!

2.2在创建一个进行打包

这时就会一起被打包

总结:

聚合其实就是对项目管理的一种方式,高内聚低耦合的一种方式,比较好理解和实现!

目录
相关文章
|
Java 应用服务中间件 Apache
Maven程序 tomcat插件安装与web工程启动
Maven程序 tomcat插件安装与web工程启动
237 0
|
缓存 Java 关系型数据库
【超全详解】Maven工程配置与常见问题解决指南
检查Maven配置包括验证路径、设置pom.xml与Project Structure的Java版本。基本操作有`clean-compile`、`install`和`package`,其中`install`会将jar包放入本地仓库。获取他人工程后需修改配置、清除缓存、更新依赖等。配置文件应从Maven Repository找寻,选择稳定高版本。创建Maven工程可选archetype如`quickstart`或直接创建Java工程。基本目录结构遵循分层设计原则,常见问题包括假性导包、端口占用、时区问题等,对应解决方案包括删除本地仓库文件、调整系统设置或重新加载项目。
2479 6
【超全详解】Maven工程配置与常见问题解决指南
|
Java Maven
maven 工程pom依赖优化及常用命令
maven 工程pom依赖优化及常用命令
367 0
|
SpringCloudAlibaba Java Maven
关于拆分boot工程的踩坑之maven多模块间的依赖关系处理
关于拆分boot工程的踩坑之maven多模块间的依赖关系处理
|
Java 应用服务中间件 API
eclipse创建 maven-web工程
eclipse创建 maven-web工程
|
IDE Java 数据库连接
maven篇2:手动创建maven工程
maven篇2:手动创建maven工程
228 0
maven篇2:手动创建maven工程
|
Java Maven
Maven【2】( Web 工程依赖 Java 工程)(命令行操作)
Maven【2】( Web 工程依赖 Java 工程)(命令行操作)
167 0
|
XML Java Maven
SpringBoot使用Maven建立多模块工程(二)
SpringBoot使用Maven建立多模块工程(二)
221 0
|
Java 应用服务中间件 API
SpringBoot使用Maven建立多模块工程(一)
SpringBoot使用Maven建立多模块工程(一)
388 0

推荐镜像

更多