首页 > 其他分享 >maven之父子工程&版本控制

maven之父子工程&版本控制

时间:2023-03-17 13:57:30浏览次数:31  
标签:lang 父子 版本控制 1.0 -- commons maven org log4j

<parent> 标签

用于父子工程项目,什么是父子工程?

顾名思义,maven父子项目是一个有一个父项目,父项目下面又有很多子项目的maven工程,当然,子项目下面还可以添加子项目,从而形成一个树形的结构。那么,这么做有什么好处呢?有以下两点:

  • 依赖传递
  • 打包方便

父工程package 需要指定pom
子工程需要声明parent,否则无法使用父pom的依赖

<dependency> 标签

导入依赖
和dependencyManagement 一起出现,指定的版本优先级更高,通常出现在父pom

<dependencyManagement> 标签

版本控制,只声明版本,不进行依赖导入

<modules> 标签

执定子工程,如果不指定,不能识别子工程

父pom

<?xml version="1.0" encoding="UTF-8"?>
<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>org.example</groupId>
    <artifactId>mavenparent</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>mavenson1</module>
        <module>mavenson2</module>
    </modules>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.1</version>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>5.3.24</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>

子pom1

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <parent>
        <artifactId>mavenparent</artifactId>
        <groupId>org.example</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>mavenson1</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
<!--            <version>2.5</version>-->
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.example</groupId>
            <artifactId>mavenparent</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>
<!--    <dependencyManagement>-->
<!--        <dependencies>-->
<!--            <dependency>-->
<!--                <groupId>commons-lang</groupId>-->
<!--                <artifactId>commons-lang</artifactId>-->
<!--                <version>2.6</version>-->
<!--            </dependency>-->
<!--        </dependencies>-->
<!--    </dependencyManagement>-->

</project>

子pom2

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <groupId>org.example</groupId>
    <version>1.0-SNAPSHOT</version>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>mavenson2</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.example</groupId>
            <artifactId>mavenparent</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.5</version>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.4</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

image
``

标签:lang,父子,版本控制,1.0,--,commons,maven,org,log4j
From: https://www.cnblogs.com/lordMaster/p/17226431.html

相关文章

  • VUE父子组件生命周期执行顺序
    组件关系,HomeView与AboutView为同级,HelloWorld为HomeView的子组件刚进HomeView页面时更新HomeView页面更新HelloWorld页面切换到AboutView......
  • dialog父子窗口传值,有问题
    父页面 //创建窗口   functionshowEditDialog(obj){       varobjNum=arguments.length;       vard=parent.dialog({          ......
  • IntelliJ IDEA集成本地Maven步骤
    IntelliJIDEA集成本地Maven步骤一、前期准备Maven已经在本地环境配置完成,步骤可以参考我的这篇文章:https://www.cnblogs.com/rainbow-1/p/17223811.html二、IDEAmave......
  • maven
    二.Maven的作用在开发中,为了保证编译通过,我们会到处去寻找jar包,当编译通过了,运行的时候,却发现"ClassNotFoundException",我们想到的是,难道还差jar包?每个Java项目的目录结......
  • eclipse创建maven模块化web项目
        第一步,新建项目,把src目录删除       第二步,项目右键,新增模块dao, 第三步,pom.xml报错,修改<artifactId>maven-jar-plugin</artifactId><ve......
  • maven 导入jar包 打包丢失
    1、基础maven<build><plugins><!--cleanlifecycle,seehttps://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle-->......
  • Maven POM.xml 标签详解
    pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其......
  • maven配置公司远程私有仓库
    1、在本地maven的 settings.xml 配置使用公司maven仓库时,配置个人账号,在 servers 节点增加配置(需要则配置,不需要则跳过)<server><id>pds-repo</id><usernam......
  • Maven学习笔记1:Maven基本介绍和安装配置
    一、认识Maven官网http://maven.apache.org/上面有最权威的说明,其中包括下载、安装、运行示例,但是是英文版的。Maven是什么Maven是一个项目管理工具。它有何优点呢?......
  • Maven简介和安装(配置中央仓库和本地仓库,IDEA配置Maven)
    简介Maven是使用Java语言编写的,是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型POM(ProjectObjectModel)项目对象模型。开发人员只需要做一些简单的配置,M......