Mvaen 高级

1 导入其他工程 资源文件

先install到仓库里

然后根据组织名项目名版本号写在dependence里正常导入

  1. <dependence>
  2. <groupId></groupId>
  3. <artifactId></artifactId>
  4. <version></version>
  5. </dependence>

2 聚合

拥有一个父模块,解决版本一起迭代更新的问题

新建一个Maven工程 , 只留下一个pom文件

在pom里添加

  1. <packaging>pom</packaging>
  2. <!-- 管理的工程列表 -->
  3. <modules>
  4. <module>../ssm_pojo</module>
  5. <module>../ssm_dao</module>
  6. <module></module>
  7. <module></module>
  8. </modules>

代表着专门用于做项目管理

3 继承

由父工程做依赖 及其 版本控制

  1. <!--声明此处进行依赖版本管理 -->
  2. <dependencyManagement>
  3. <dependencies>
  4. <dependence></dependence>
  5. <dependence></dependence>
  6. <dependence></dependence>
  7. </dependencies>
  8. </dependencyManagement>

在子工程里导入父工程

  1. <parent>
  2. <groupId></groupId>
  3. <artifactId></artifactId>
  4. <version></version>
  5. <relativePath>../ssm/pom.xml</relativePath>
  6. </parent>
  7. <!-- 去掉groupId version -->
  8. <artifactId></artifactId>

然后在子工程的依赖中 , 引入依赖就不需要自己去指定版本了 , 可以直接用父工程的依赖版本

4 聚合与继承

5 属性

  1. <properties>
  2. <spring.version>5.1.9.RELEASE</spring.version>
  3. </properties>
  4. <dependencies>
  5. <dependence>
  6. <groupId></groupId>
  7. <artifactId></artifactId>
  8. <version>${spring.version}</version>
  9. </dependence>
  10. </dependencies>

6 版本管理

6.1 工程版本

6.2 版本号约定

7 资源配置

在pom中的添加变量 , 同样可以在properties文件中用${}引用,然后需要在pom中配置resources

在任意配置文件中加载pom文件中定义的属性

后面其实可以用nacos 配置中心来代替

  1. <resources>
  2. <resource>
  3. <directory>${project.basedir}/ssm_dao/src/main/resources</directory>
  4. <filtering>true</filtering>
  5. </resource>
  6. </resources>
  7. <testResources>
  8. <testResource>
  9. <directory>${project.basedir}/ssm_dao/src/main/resources</directory>
  10. <filtering>true</filtering>
  11. </testRsource>
  12. </testResources>

8 环境配置 - 多环境

  1. <profiles>
  2. <!-- 定义具体的环境:生产环境 -->
  3. <profile>
  4. <id>pro_env</id>
  5. <!-- 定义环境中专用的属性值 -->
  6. <properties>
  7. <jdbc.url>xxxx</jdbc.url>
  8. </properties>
  9. <!-- 设置默认启动 -->
  10. <activation>
  11. <activeByDefault>true</activeByDefault>
  12. </activation>
  13. </profile>
  14. <!-- 开发环境 -->
  15. <profile>
  16. <id>dev_env</id>
  17. <properties>
  18. <jdbc.url>aaaa</jdbc.url>
  19. </properties>
  20. </profile>
  21. </profiles>

然后需要在打包的时候指定环境名

新建一个maven指令

  1. install -P dep_env

9 跳过测试

9.1 应用场景

9.2 跳过方法

  • idea中点击右边的maven组件,然后上面有个闪电的标志,点击,看到test的生命周期被中划线划掉,即可跳过

  • 直接用命令行的方式来执行生命周期 -D skipTests

  • 配置插件来跳过测试

    1. <plugin>
    2. <artifactId>maven-surefire-plugin</artifactId>
    3. <version>2.22.1</version>
    4. <configuration>
    5. <skipTests>true</skipTests>
    6. </configuration>
    7. </plugin>

9.3 选定测试的内容

  1. <plugin>
  2. <artifactId>maven-surefire-plugin</artifactId>
  3. <version>2.22.1</version>
  4. <configuration>
  5. <includes>
  6. <include>
  7. **/UserServiceTest.java
  8. </include>
  9. </includes>
  10. <excludes>
  11. </excludes>
  12. </configuration>
  13. </plugin>

10 私服

10.1 下载 与 启动

Nexus - maven私服产品

Nexus下载地址

启动:

  1. nexus /run nexus

访问地址: localhost:8081

./etc目录下的 nexus-default.properties文件可以修改对应的起点端口号

./bin/nexus.vmoptions可以修改最大内存, 日志等参数

10.2 私服资源获取

10.2.1 仓库分类

10.2.2 进行仓库分组

进入\sonatype-work\nexus3\admin.password

点击,里面存放了密码

用户名:admin

登录进去后可以设置新密码:123456

代理仓库

宿主仓库

仓库组:

创建一个宿主仓库

将新创建的tets-release仓库加到仓库组中

然后就可以在浏览的界面中上传文件了

10.3 本地仓库使用私服

上传地址:宿主地址

下载地址:组地址

进入maven本地配置中,配置访问私服

  1. <server>
  2. <id>test-release</id>
  3. <username>admin</username>
  4. <password>123456</password>
  5. </server>
  6. <server>
  7. <id>test-snapshots</id>
  8. <username>admin</username>
  9. <password>123456</password>
  10. </server>
  11. <mirror>
  12. <id>nexus-test</id>
  13. <mirrorOf>*</mirrorOf>
  14. <name>私服仓库</name>
  15. <url>http://127.0.0.1:8081/repository/maven-public/</url>
  16. </mirror>

10.4 发布

添加maven的pom的配置

  1. <distributionManagement>
  2. <repository>
  3. <id>test-release</id>
  4. <url>http://127.0.0.1:8081/repository/test-release/</url>
  5. </repository>
  6. <repository>
  7. <id>test-snapshots</id>
  8. <url>http://127.0.0.1:8081/repository/test-snapshots/</url>
  9. </repository>
  10. </distributionManagement>

然后生命周期reploy发布

Maven-高级的更多相关文章

  1. maven 高级玩法

    maven 高级玩法 标签(空格分隔): maven 实用技巧 Maven 提速 多线程 # 用 4 个线程构建,以及根据 CPU 核数每个核分配 1 个线程进行构建 $ mvn -T 4 clean ...

  2. Maven高级:01.maven分模块构建&&02.私服的应用

    IntelliJ IDEA 2018.3.6 x64 07 Maven高级:01.maven分模块构建(上) 07 Maven高级:01.maven分模块构建(中) 07 Maven高级:01.mav ...

  3. 【Maven】Maven 高级应用

    Maven 高级应用 Maven 基础 Maven 是一个项目管理工具,它有如下好处: 节省磁盘空间 可以一键构建 可以跨平台使用 依赖传递和管理,提高开发效率 一键构建:Maven 自身集成了 To ...

  4. maven高级笔记

    Maven高级 1.maven基础知识回顾 1.1 maven介绍 maven 是一个项目管理工具,主要作用是在项目开发阶段对Java项目进行依赖管理和项目构建. 依赖管理:就是对jar包的管理.通过 ...

  5. Maven 高级应用

    Maven 的高级应用主要体现在 ==依赖==,==聚合==,==继承== * 依赖 就是在当前项目的pom.xml 总引入依赖的坐标 最最经常用到的 <dependencies> < ...

  6. maven高级学习

    上一篇<maven是什么>介绍了最初级的maven学习,今天就趁着周末的大好时光一起学习下maven的高级知识吧. 1.maven工程要导入jar包的坐标,就必须要考虑解决jar冲突 1) ...

  7. Maven高级应用--编译全模块包-dist包

    1. 在需要生成dist包的模块级别,新建文件夹xxx-xxxx-dist 2. 进入目录,新建pom.xml,建议copy 3. dependencies节点,把要编译成全局包的应用引入进来 < ...

  8. 22 Maven高级应用

    1.Maven基础知识回顾 maven是一个项目管理工具.依赖管理:maven对项目中的jar包的管理过程.传统的工程我们直接将jar包放置到项目中. maven工程真正的jar包放置在仓库中,项目中 ...

  9. Maven高级

    第一章 Maven解决冲突的方式 1.1 第一声明者优先原则 那个jar包的坐标在pom.xml文件上属于靠上的位置,这个jar包就是先声明的.先声明的jar包坐标下的依赖包,可以优先进入项目中. 示 ...

  10. Java框架--SSM&Oracle&Maven高级

    〇.内容介绍 一.MyBatis01:框架概述.环境搭建及入门案例.自定义框架 1.介绍 框架:封装细节,是开发中的解决方案 三层架构与SSM的关系 表示层web:SpringMVC框架 业务层ser ...

随机推荐

  1. MySQL时区的问题

    我这里是在application.properties文件中配置的MySQL连接信息. 开始时间显示不征程是因为没有配置时区,后来加上了setTimeZone=Asia/Shanghai,时间显示正常 ...

  2. matlab求解器的选择

    可以选择的变步长求解器有:ode45,ode23,ode113,odel5s,ode23s和discret.缺省情况下,具有状态的系统用的是ode45:没有状态的系统用的是discrete. 1)od ...

  3. Linux firewall 命令

    常用命令 开启端口命令 firewall-cmd --zone=public--add-port=443/tcp --permanent --zone  #作用域 --add-port=80/tcp ...

  4. Web开发 学习 调试 调优

    目录 快捷操作 调试方法 基本调试方法 修改参数和请求重发 Chrome抓包分析 性能优化 安全 cURL请求 参考 参考:MDN 调试HTML 参考:什么是浏览器开发者工具? 参考:检查和编辑页面与 ...

  5. Python用telnet设置,抓UDP抓采样点并显示

    ====main.bat==== echo off rem "d:\Program\WiresharkPortable64\App\Wireshark\tshark.exe" -- ...

  6. vue provide inject 方法

    上级组件: provide() { return { changeSelectOptions: this.changeSelectOptions, switchTabs: () => this. ...

  7. 881. 救生艇 (Medium)

    问题描述 881. 救生艇 (Medium) 给定数组 people . people[i] 表示第 i 个人的体重 , 船的数量不限,每艘船可以承载的最大重量为 limit. 每艘船最多可同时载两人 ...

  8. windows下判断程序是否内存泄漏

    在main函数第一行写 _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); 程序退出后如果有泄漏会有打印

  9. python 统计 excel 表格中文件总大小

    需求:统计excel 表格中文件总大小 表格内容,包含Mi.Gi.KB 96.73Mi 95.89Mi 6.89Gi 6.75Gi 10.00KB 统计总大小代码,目标是将Gi.KB换算成 Mi,然后 ...

  10. SignalR《二》接着前篇的继续

    SignalR<二>接着前篇的继续 SignalR身份验证 在ChatRoomHub加上[Authorize] 这样登录了才能发送消息  using Microsoft.AspNetCor ...