欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

maven怎么做版本控制器(建议收藏)

程序员文章站 2024-01-08 13:06:22
...

maven怎么做版本控制器(建议收藏)

一、dependency相关配置

1.1、scope

test:只在测试时使用,打包时不用。

import:单继承。只能用在dependencyManagement里面,且仅用于type=pomdependency

1.2、type

dependency为什么会有type为pom,默认的值是什么?
dependency中type默认为jar即引入一个特定的jar包。那么为什么还会有type为pom呢?当我们需要引入很多jar包的时候会导致pom.xml过大,我们可以想到的一种解决方案是定义一个父项目,但是父项目只有一个,也有可能导致父项目的pom.xml文件过大。这个时候我们引进来一个type为pom,意味着我们可以将所有的jar包打包成一个pom,然后我们依赖了pom,即可以下载下来所有依赖的jar包。

二、dependencyManagement

间接依赖,主要作用是用来管理依赖。可以被继承,如果在这个元素中引入的依赖不会被加载进来,只有其他工程引入这个依赖之后才会被引入。一般用于父pom.xml中,而子工程dependency元素在依赖。

三、创建版本控制器

实现效果,我要向springboot版本控制器那样,只需要依赖我的这个版本控制器,就不用再依赖springbootspringcloud以及springcloudalibaba这些版本控制器了。在父工程引入我的这个依赖,在工程依赖部分模块实现相应的功能。就很好的避免重复的写同样的功能,只需要一个依赖就实现相同的功能了。

这样做的好处是。

1、如果自己很多项目需要实现相同的功能,那么我们只需要写一套代码,install到本地仓库或者私服里面,其他项目一个依赖就可以。

2、不用项目都需要去引用一大堆依赖,某个依赖更新时,设计的再好,只好每个项目需要在父工程中更改一次。就意味着项目更新比较麻烦,如果实现自定义版本控制器后,就可以向springboot版本控制器那样很好的管理版本,今后代码只维护一套,所有项目就得到解决。

这也是我策划已久的项目,也是我设计失败了三四个项目后取得的成就。

写法和普通多模块项目一样的,其他项目引入时采用springboot版本控制器的方式引入就可以了。

3.1、父pom.xml设计

在父pom.xml中,必须将packaging设置为pom,默认为jar。子工程需要设置为jar,但是默认就是jar,我们就可以忽略。

maven怎么做版本控制器(建议收藏)

dependencies标签说明

dependencies标签中引入的依赖,每个子工程中也就自动继承了这里的依赖。所以只要在这个标签中引入的依赖,maven会将这个标签中的依赖加载到项目中,每个子模块不用再依赖就直接使用。

maven怎么做版本控制器(建议收藏)

dependencyManagement标签说明

这个标签一般使用在父pom.xml中,在这个标签中引入的依赖,不会加载进来,在这里将依赖写好,版本号定义好。子模块引用这里面的依赖时,就避免写版本号了,只要子工程依赖,这里的依赖才会加载到项目中。所以这个标签一般用于版本控制,为了好维护版本号。

maven怎么做版本控制器(建议收藏)

3.2、插件

安装一下两个插件,第一个是指定JDK版本。第二个是打包插件。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <!--springboot 打包插件-->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

如果某个子工程直接打成jar直接运行的,那么会遇见一下错误。

java -jar XXX.jar中没有主清单属性,建议收藏。

参考博客:https://blog.csdn.net/qq_41853447/article/details/107288874

需要在需要运行的这个子工程中在添加以下插件,在插件中指定main方法的路径。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.2.2.RELEASE</version>
            <configuration>
                <!-- main方法的地址 只需要修改这个地址-->
                <mainClass>com.security.user.AuthServerApplication</mainClass>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

3.2、子pom.xml设计

子工程里面,需要使用那些jar就直接依赖即可。

maven怎么做版本控制器(建议收藏)

maven怎么做版本控制器(建议收藏)

但是父pom.xml里面dependencies标签引入的依赖,所以子工程都可以不用引入了,可以直接使用。所以我习惯性说,dependencies里面是的直接依赖,dependencyManagement里面的是间接依赖。直接依赖的,所有子工程不用再依赖直接使用,间接依赖的,子工程需要重新引入才可以使用。

四、两个项目之间依赖关系讲解

依赖的使用和一个项目中不同模块依赖是一样的,多模块项目之间依赖关系,常常有之。

当我们在父项目中的父pom.xml直接依赖进来的jar,我们将父项目打成jar让子项目中引用。那么子项目中就不用再引入父项目中直接依赖进来的jar了。

例如:

maven怎么做版本控制器(建议收藏)

maven怎么做版本控制器(建议收藏)

maven怎么做版本控制器(建议收藏)

五、子项目依赖父项目

依赖方式就像依赖springboot版本控制器那样依赖就行。

maven怎么做版本控制器(建议收藏)

六、讲解子项目中为什么依赖这么少

6.1、子项目中父pom.xml依赖

maven怎么做版本控制器(建议收藏)

6.2、子木块依赖

maven怎么做版本控制器(建议收藏)

6.3、子项目为什么不需要其他的依赖了

maven怎么做版本控制器(建议收藏)

七、将工程打包到本地仓库

参考博客:https://blog.csdn.net/qq_41853447/article/details/107291968

install项目的时候,注意install父项目,因为你install某个子项目时,只会将那个子项目install到本地仓库,其他你是不能install进去的。就意味着引入父项目的那个依赖是不能引入的,因为本地仓库没有。

maven怎么做版本控制器(建议收藏)

查看本地仓库

maven怎么做版本控制器(建议收藏)

maven怎么做版本控制器(建议收藏)

maven怎么做版本控制器(建议收藏)

相关标签: 版本控制器

上一篇:

下一篇: