Maven笔记

项目构建命令

在pom.xml所在目录内运行

mvn compile		#编译
mvn clean		#清理
mvn test		#测试
mvn package		#打包
mvn install 	#安装到本地仓库

tomcat 插件

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.3.1</version>
        </plugin>

        <plugin>
            <!-- https://mvnrepository.com/artifact/org.apache.tomcat.maven/tomcat7-maven-plugin -->
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <path>/wyihe</path>
            </configuration>
        </plugin>
    </plugins>
</build>

聚合

实现统一的清理、编译、打包等操作

1. 创建一个工程,只需要 pom 文件即可,设置模块类型为pom

2. 把需要操作的工程添加进 <modules> 标签中

聚合作用的工程就操作完成了

模块继承

子工程可继承父工程的配置信息

作用:

  • 继承依的配置信息
  • 继承插件的配置信息
  • 只需更改父类的配置信息,子类相关依赖和插件的配置都会自行更改

父类设置

需设置工程类型为pom

设置父类依赖

用 <dependencyManagement> 标签包裹 <dependencies> 标签,里面照常写依赖

父类pom里添加子类依赖

照常将子类添加进 dependencies 标签里

父类pom设置插件

使用标签 pluginManagement ,其他照常

子类设置

pom最上方标记父类pom

relativePath 为父类pom路径
这段写在最上方

为了工程统一,子类的组id和版本应该保持一致,所以直接继承父类,不用再写了

子类依赖和插件的详细配置信息继承父类,所以很多也不用写了

依赖:

插件:

至此,模块继承搞定了

属性

自定义属性

声明

<properties>
    <spring.version>5.3.0</spring.version>
</properties>

调用

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

内置属性

project.basedir: 工程目录

version:项目版本

调用

资源配置

配置插件,并标明资源目录

project.basedir 为系统属性,属性内容是工程路径

<build>
    <resources>
        <resource>
            <directory>${project.basedir}/src/main/resources/</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

如果是测试,build 内使用该标签

<testResources>
    <testResource>
        <directory></directory>
        <filtering></filtering>
    </testResource>
</testResources>

定义属性名

<properties>
    <jdbc.username>wyihe</jdbc.username>
</properties>

在资源文件中使用

jdbc.username=${jdbc.username}

环境配置

实际中需要配置多种环境,如生产环境和开发环境,利用maven可以针对这两种环境配置不同的属性值。

当我们使用不同环境时,会自动使用不同的属性值。

配置两种环境,并使pro_env(生产环境)为默认环境

<profiles>
    <profile>
        <id>pro_env</id> <!--配置id:生产环境-->
        <properties>  <!--定义这个环境中使用的属性值-->
            <jdbc.url>jdbc:mysql://127.9.9.9:3306/test</jdbc.url>
        </properties>
        <activation> <!--设置该环境为默认环境-->
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>

    <profile>
        <id>dep_env</id> <!--配置id:开发环境-->
        <properties>
            <jdbc.url>jdbc:mysql://127.0.0.0:3306/test</jdbc.url>
        </properties>
    </profile>
</profiles>

运行不同环境

mvn 指令 -P 环境id

配置 Maven 启动项

image-20211020210653917

私服

启动 nexus

官网下载地址

百度网盘 提取码:yjr8


启动

下载nexus,进入bin目录,在cmd中输入指令运行

nexus /run nexus

进入

浏览器输入地址进入服务器

localhots:8081

修改端口号

在该文件中更改端口

etc/nexus-default.properties

配置仓库

创建仓库

创建一个主机仓库

image-20211020215230598

image-20211020215257765

点开后输入仓库名,可以选择 Release ,然后直接点击创建

添加仓库到 public 群组中

image-20211020215522009

将刚才创建的仓库添加进去

image-20211020215555279

上传到仓库

进入仓库

image-20211020215812495

点上传

image-20211020215828782

填写相关信息后上传,可以选择性的生成pom

image-20211020220020588

如果把version版本与库类不同(Release或SNAPSHOT),会不让上传提示错误,这时改一下名字就行了

本地仓库访问私服

配置 services标签:

在Maven的settings.xml文件中进行配置

services标签下,添加仓库

id为仓库名, 用户密码是登录nexus的用户密码

定义几个就配几个

image-20211020221424941

配置mirrors标签

阿里云设置为central,意为从中央仓库拿

自己的设置为*,意为除此之外的从自己的私服里拿

image-20211020222238497

发布到私服

在pom里添加配置:

作为根标签的子标签

运行:根据url访问私服,根据id在settings.xml里找到用户密码,因此id值要与settings.xml里设置的相同

url:仓库的地址

<distributionManagement>
    <repository>
        <id>acdongla-release</id>
        <url>http://localhost:8081/repository/acdongla-release/</url>
    </repository>

    <snapshotRepository>
        <id>acdongla-snapshot</id>
        <url>http://localhost:8081/repository/acdongla-snapshot/</url>
    </snapshotRepository>
</distributionManagement>

最后 deploy 指定用于发布,会自动发布到私服上

posted @ 2021-10-20 22:39  yangruomao  阅读(53)  评论(0编辑  收藏  举报