springboot通过父工程进行包版本管理

本文详细介绍了如何使用SpringBoot创建父工程,并通过父工程管理子工程的包版本。主要步骤包括修改父工程POM文件,设置打包类型为pom,添加子模块,以及在子工程POM文件中引入父工程。注意事项涵盖子工程的依赖管理和版本控制。同时强调了父工程不会下载jar包,需要在子工程中引入并下载所需依赖。
摘要由CSDN通过智能技术生成

1 父工程pom文件的修改

1 父工程的pom文件

最后build中的配置maven的版本,从而设置编译的版本。

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>   

 <!--第一步-->
    <groupId>com.sucre</groupId>
    <artifactId>springboot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot</name>
    <description>Demo project for Spring Boot</description>


<!--第二步-->
    <!--打包方式改为pom-->
    <packaging>pom</packaging>


    
 <!--父工程的父包注意控制版本号-->
<parent>
        <!--<groupId>org.springframework.boot</groupId>-->
        <!--<artifactId>spring-boot-starter-parent</artifactId>-->
        <!--<version>2.4.5</version>-->
        <!--<relativePath/> &lt;!&ndash; lookup parent from repository &ndash;&gt;-->
</parent>




<!--第三步-->
    <!--每创建一个子模块时就要手动添加子模块的模块名-->
    <!--就是artifactId  <artifactId>user</artifactId>   -->

    <modules>
        <module>user</module>
    </modules>


<!--第五步-->
    <!--添加的jar包的版本号-->
    <properties>
        <spring-boot.version>2.2.1.RELEASE</spring-boot.version>
        <spring-cloud.version>Hoxton.SR1</spring-cloud.version>
        <mysql-version>5.1.47</mysql-version>
    </properties>


<!--第四步-->
    <!--手动导入的spring-boot-dependencies依赖需要添加scope和type两个属性,
    其它就不用了。
-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>

        <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql-version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

2 主要注意事项

1.如果使用mave创建子项目时,mavenx项目会自动把子工程归为父工程管理,即第三步可以跳过。
在这里插入图片描述
2.手动导入springboot包和springcloud包时一定要添加scopetype 这两个属性,否则子工程不识别父工程的springboot 的版本,其它就不用了。
都和一下一样就行

<type>pom</type>
<scope>import</scope>

3.父工程是不会下载jar包的,如果我们的maven本地仓库中没有jar包时,父工程的版本号会报红。
解决方案1
我们把依赖拷贝到子工程中的pom文件中去下载就行。
解决方案2
暂时添加以下这两个属性,不报红后删除。

<type>pom</type>
<scope>import</scope>

2 子工程的pom文件的修改

1 子工程的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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
<!--第一步-->
    <!--手动添加父工程依赖-->
    <parent>
        <groupId>com.sucre</groupId>
        <artifactId>springboot</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

    <!--这里不动-->

    <groupId>com.sucre</groupId>
    <artifactId>user</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>user</name>
    <description>Demo project for Spring Boot</description>


<!--第二步-->
    <!--添加jar包但是不添加版本-->
    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

2 注意事项

1.在父工程目录下创建springboot子工程后,先在子工程中引入父工程,然后再去父工程处手动注册子工程。
2.如果创建maven子工程那么就不需要做1了。

3 父工程控制总版本号,父工程下的子工程来控制其下属子工程的版本号。

1 在公共子资源总的操作

按平常创建一个继承与于父包的maven文件,打包方式为jar包。
从它父工程中中引入子工程所需的jar包,带版本号,下载完jar包后删除。

<!--引入父包-->
    <parent>
        <artifactId>parent2010</artifactId>
        <groupId>com.wy</groupId>
        <version>1.0</version>
    </parent>
    
    <modelVersion>4.0.0</modelVersion>
    <artifactId>bus</artifactId>
    <!--打包方式为jar包-->
    <packaging>jar</packaging>

2 在公共子资源总的操作

在父包中加入依赖就行

           <dependency>
                <groupId>com.wy</groupId>
                <artifactId>bus</artifactId>
                <version>${wy.version}</version>
            </dependency>

3 在公共子资源总的操作

只引入公共资源包就行,先带版本号复制,下载完jar包后就删除。

    <dependencies>
        <dependency>
            <groupId>com.wy</groupId>
            <artifactId>bus</artifactId>
        </dependency>
    </dependencies>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值