maven配置文件(二)pom

一、repositories和mirrors

1、repositories仓库

不指定则默认从http://repo1.maven.org/maven2 这个地方去请求插件和依赖包。

正常情况下也没问题,如果需要获取一些私服的包肯定就获取不到了。可以配置为(公司)私服的地址。

2、mirrors镜像

出于网速原因,对于repositories的镜像,一般在maven的setting配置文件中配置。

3、私服搭配镜像

镜像通常会和 Maven 私服配合使用(都需要配置),由于 Maven 私服可以代理所有外部的公共仓库(包括中央仓库),因此对于组织内部的用户来说,使用一个私服就相当于使用了所有需要的外部仓库,这样就可以将配置集中到私服中,简化 Maven 本身的配置。这种情况下,用户所有所需的构件都可以从私服中获取,此时私服就是所有仓库的镜像。

二、build

<!--springboot项目打包插件-->   
 <build>
        <finalName>my-service</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
1、介绍 

spring-boot-maven-plugin 这个打包插件存在 多个方面的功能,从插件命令就可以看出:

  • build-info:生成项目的构建信息文件 build-info.properties
  • repackage:这个是默认 goal,在 mvnpackage 执行之后,这个命令再次打包生成可执行的 jar,同时将 mvnpackage 生成的 jar 重命名为 *.origin
  • run:这个可以用来运行 Spring Boot 应用
  • start:这个在 mvn integration-test 阶段,进行 SpringBoot 应用生命周期的管理
  • stop:这个在 mvn integration-test 阶段,进行 SpringBoot 应用生命周期的管理

默认情况下使用就是 repackage 功能,其他功能要使用,则需要开发者显式配置。repackage 功能的 作用,分为两步

(1)第一步:首先 mvnpackage 命令 对项目进行打包,打成一个 jar,这个 jar 就是一个普通的 jar,可以被其他项目依赖,但是不可以被执行

(2)第二步:通过将第一步打成的 jar重命名为 *.original 文件,得到一个只能被依赖,不能被执行的jar包。

同时进行repackage 命令,对第一步 打包成的 jar 进行再次打包,将之打成一个 可执行 但是不能被依赖的jar包 .

2、可执行jar与不可执行jar 

打出来的Jar包,有的是可以直接使用jdk运行的(有main方法)称为可执行Jar,有的不需要运行只是提供依赖的(如多模块工程中的api子组件)称为 不可执行jar。

2.1、可执行jar
 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
2.2、不可执行jar

因为没有main方法,使用上述配置会报错: Unable to find main class。解决方法:

(1)继续使用上述配置,写一个空的main方法不做任何处理

(2)替换打包插件

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-jar-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

注意:父工程pom里面去掉打包插件,否则会被api子组件继承下来。

3、常见报错:

(1)

 Execution default of goal org.springframework.boot:spring-boot-maven-plugin:2.0. 4.RELEASE:repackag  Unable to find main class

解决方法:

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>none</phase>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

三、dependencyManagement

1、介绍:

Maven中的dependencyManagement元素提供了一种管理依赖版本号的方式。在dependencyManagement元素中声明所依赖的jar包的版本号等信息,那么所有子项目再次引入此依赖jar包时则无需显式的列出版本号。Maven会沿着父子层级向上寻找拥有dependencyManagement 元素的项目,然后使用它指定的版本号。

2、注意事项:

dependencyManagement中定义的只是依赖的声明,并不实现引入,因此子项目需要显式的声明需要用的依赖。

3、demo:

父pom:

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <version>1.2.3.RELEASE</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

子项目则无需指定版本信息:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w_t_y_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值