Maven | 高级(下)

简介: Maven | 高级(下)

四、属性


4.1 使用属性


一般在聚合工程中,在properties标签下以标签形式自定义属性,使用属性可以解决多个版本号一致时修改不方便的问题,将版本号定义成变量引用。


  <properties>
   <!--    一个pom文件中只能有一个properties标签-->
        <maven.compiler.source>14</maven.compiler.source>
        <maven.compiler.target>14</maven.compiler.target>
        <!--    定义属性(用于替换版本号这些信息)-->
        <spring.webmvc>5.2.10.RELEASE</spring.webmvc>
    </properties>


子工程使用属性


    <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.webmvc}</version>
        </dependency>


4.2 配置文件加载属性


4.3 版本管理


工程版本 发布版本
包括SNAPSHOT快照版本和RELEASE发行版本。 包括alpha,纯数字和beta版本。

df8794ee5af24c2aa74b2bd9e1ea2fd2.png


五、多环境开发和跳过测试


5.1 多环境开发


01debc306aa145659147e57359fc8db5.png

(1)使用profiles标签定义多个不同的环境并设置默认环境


<!--    模拟定义多环境-->
    <profiles>
        <profile>
            <!--            开发环境-->
            <id>env_dep</id>
            <properties>
                <!--                属性-->
                <jdbc.url>jdbc:mysql://localhost:3306/test</jdbc.url>
            </properties>
        </profile>
        <profile>
            <!--            生产环境-->
            <id>env_pro</id>
            <properties>
                <jdbc.url>jdbc:mysql://127.1.1.1:3306/test</jdbc.url>
            </properties>
            <!--            设置这个环境是默认环境-->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <!--            测试环境-->
            <id>env_test</id>
            <properties>
                <jdbc.url>jdbc:mysql://127.3.3.2:3306/test</jdbc.url>
            </properties>
        </profile>
    </profiles>


(2)使用命令选择执行环境

4d9810ecbccd461081b8423c24aaaf47.png

4c5889b98c2e43a4a6709e0792c6376a.png


5.2 跳过测试


(1)跳过全部测试

使用maven工具:

ac4dbe5069e74e47a016a9e0823f2155.png

点击图中的闪电按钮之后,执行maven指令即可跳过测试。

使用mvn命令:


14177f639d5245de9f965f458a494723.png


在pom文件中配置测试插件:


        <plugins>
<!--            配置测试插件-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12.4</version>
                <configuration>
<!--                    是否跳过测试:是-->
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
        </plugins>


(2)跳过一部分不测试


<plugins>
            <!--            配置测试插件-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12.4</version>
                <configuration>
                    <!--                    是否跳过测试:否-->
                    <skipTests>true</skipTests>
                    <!--                    排除这个类,不测试-->
                    <excludes>**/BookServiceImplTest.java</excludes>
                </configuration>
            </plugin>
        </plugins>


六、私服


6.1 私服简介和安装


1.私服是什么


bf8b729385394dc2a7423a587c786853.png私服是一个特殊的远程仓库,它是架构在局域网内的仓库服务,供局域网内的开发人员使用。当Maven需要下载构建的使用,它先从私服请求,如果私服没有的话,则从外部的远程仓库下载,然后缓存在私服上,再为Maven的下载请求提供服务。

77d8226c190b4d0888b476eea2f38488.png

9b9f46f5264044ebaa425940947d521b.png

2.私服的作用


  • 内网访问,节省外网带宽。
  • 一次外网下载,内网所有用户就可以只下载私服缓存,加速Maven项目构建。
  • 不被外部访问,更加安全。
  • 减少外部网络因素,更加稳定。
  • 方便内部项目服务的依赖引用,而不需要其他项目的完整源代码。


3.Nexus下载使用

Nexus是一个仓库管理器,通过Nexus来搭建Maven的私服。

步骤:

(1)下载私服


5a4035de993d43fca519ad895326fb94.png

(2)启动Nexus并使用浏览器访问

b54bfead32d445b79a4ffb6d169b76e6.pngfa72356dd585465ab833f99839a82cc2.pngf6ac26415db14bbfa27feccbf776f0fe.png

4aae7dd14c654218b19d9512313daecd.png


2e1a2fbc758c4a76ab1874adb70260c7.png


修改端口,默认端口是8081

62343a4f9f424a02b82e9106c664633d.png

f263cc7552ed426eb09896738599e659.png

6.2 私服仓库

c3e966db3d574ee197dc5bf487b51ebf.png


6.3 本地仓库配置私服77a203e45b124b49bac8cf6d4f75c015.png



(1)在Nexus存储管理器上新建两个maven仓库,并加入到maven-public仓库组中。

3a3d99f0e05b4ee5a01de30651439647.png

cc23292f3deb49ca8733f85b1e25d8db.png

6cc76c9954ac4b29ac48c7f2b2765373.png

8f34236a220a4d3996ed8299b5e33642.png

1ccce5d792054de996a4d9efd8a21a9e.png

6d7fd8e39dca43b18a48ff06a79c8d4c.png

6.4 私服资源上传和下载


<!--    如果是发行版本,版本要改为RELEASE,如果是快照版,就写Snapshot-->
    <groupId>org.example</groupId>
    <artifactId>maven_4</artifactId>
    <version>1.0-SNAPSHOT</version>


<!--    上传项目到私服-->
    <distributionManagement>
<!--        上传为发行版-->
        <repository>
            <id>itxiaoguo-release</id>
            <url>http://localhost:8081/repository/itxiaoguo-release/</url>
        </repository>
<!--        上传为快照版-->
        <snapshotRepository>
            <id>itxiaoguo-Snapshot</id>
            <url>http://localhost:8081/repository/itxiaoguo-Snapshot/</url>
        </snapshotRepository>
<!--        如果要同时发布,要修改版本-->
    </distributionManagement>
相关文章
|
6月前
|
Java Maven Spring
Maven高级-属性配置使用、资源文件引用属性及版本管理
Maven高级-属性配置使用、资源文件引用属性及版本管理
162 0
|
6月前
|
Java Maven Spring
Maven高级-继承、实施步骤及聚合与继承的区别
Maven高级-继承、实施步骤及聚合与继承的区别
72 0
|
6月前
|
Java Maven
Maven高级-分模块开发和设计及依赖管理
Maven高级-分模块开发和设计及依赖管理
78 0
|
6月前
|
存储 Oracle Java
Maven高级-私服简介与安装及私服仓库分类
Maven高级-私服简介与安装及私服仓库分类
128 0
|
6月前
|
Java 关系型数据库 MySQL
Maven高级
Maven高级
48 0
|
6月前
|
Java Maven 开发者
Maven高级-聚合与继承 私服(图文并茂)
Maven高级-聚合与继承 私服(图文并茂)
68 0
|
6月前
|
Java Maven 数据安全/隐私保护
Maven高级-本地仓库访问私服配置及私服资源上传与下载
Maven高级-本地仓库访问私服配置及私服资源上传与下载
1195 0
|
6月前
|
Java 测试技术 Maven
Maven高级-多环境配置与应用及跳过测试方式
Maven高级-多环境配置与应用及跳过测试方式
90 0
|
6月前
|
Java Maven
Maven高级-聚合及实施步骤
Maven高级-聚合及实施步骤
68 0
|
存储 Java 程序员
【Maven基础篇-黑马程序员】Maven项目管理从基础到高级,一次搞定!
依赖范围传递性 带有依赖范围的资源在进行传递时,作用范围将受到影响
87 0