胖胖的枫叶
主页
博客
产品设计
企业架构
全栈开发
效率工具
数据分析
项目管理
方法论
面试
  • openJdk-docs
  • spring-projects-docs
  • mysql-docs
  • redis-commands
  • redis-projects
  • apache-rocketmq
  • docker-docs
  • mybatis-docs
  • netty-docs
  • journaldev
  • geeksforgeeks
  • 后端进阶
  • 并发编程网
  • 英语肌肉记忆锻炼软件
  • 墨菲安全
  • Redisson-docs
  • jmh-Visual
  • 美团技术
  • MavenSearch
主页
博客
产品设计
企业架构
全栈开发
效率工具
数据分析
项目管理
方法论
面试
  • openJdk-docs
  • spring-projects-docs
  • mysql-docs
  • redis-commands
  • redis-projects
  • apache-rocketmq
  • docker-docs
  • mybatis-docs
  • netty-docs
  • journaldev
  • geeksforgeeks
  • 后端进阶
  • 并发编程网
  • 英语肌肉记忆锻炼软件
  • 墨菲安全
  • Redisson-docs
  • jmh-Visual
  • 美团技术
  • MavenSearch
  • 标签索引
  • 2024年

    • 配置Mac环境
    • 业务知识会计管理
    • 业务知识会计基础
    • 业务知识什么是财务
  • 2023年

    • 项目 Boi
  • 2022年

    • 企业架构故障管理
    • 企业架构开发债务
  • 2021年

    • Python3.8 Matplotlib员工数据分析
    • Python3.8 Matplotlib IP折线图
    • Python3.8 词云 IP地址
    • Redis RediSearch
    • Rust第一个CLI程序
    • Rust所有权
    • Rust函数与控制流
    • Rust变量与数据类型
    • Rust入门
    • 企业架构分布式系统
    • 编程式权限设计
    • Java JVM优化
    • SpringBoot MyBatis 批量
    • SpringBoot 测试Mock
    • SpringBoot Redis布隆过滤器
    • CentOS7 Jenkins 部署
    • SpringBoot WebClient
    • Docker Drone 部署
    • SpringBoot MyBatis
    • SpringBoot Redisson
    • SpringBoot MyBatis 雪花算法
    • Java Netty
    • Redis 扫描
    • CentOS7 Jenkins本地部署分级
    • Mac 安装 Neo4j Jupyter
    • Mac OpenJDK11 JavaFX 环境
    • Mac 安装 Jenv
    • SpringBoot Redis 延时队列
    • SpringBoot MDC日志
    • SpringBoot 定时任务
    • CentOS7 Nginx GoAccess
    • SpringBoot MyBatis 分析
    • SpringBoot Lucene
    • 企业架构分布式锁
    • 学习技巧减少学习排斥心理
    • SpringBoot 动态数据源
    • Docker Compose SpringBoot MySQL Redis
    • SpringBoot 阻塞队列
    • Docker Compose Redis 哨兵
    • Docker Compose Redis 主从
    • 网络通信
  • 2020年

    • SpringBoot 延时队列
    • MySQL基础(四)
    • Java 雪花算法
    • Redis Geo
    • 网络通信 Tcpdump
    • Spring SPI
    • Java Zookeeper
    • SpringBoot JMH
    • 网络通信 Wireshark
    • Docker Compose Redis MySQL
    • CentOS7 Docker 部署
    • Netty 源码环境搭建
    • MySQL基础(三)
    • CentOS7 Selenium运行环境
    • CentOS7 Nginx HTTPS
    • Java JMH
    • SpringBoot 修改Tomcat版本
    • Java Eureka 钉钉通知
    • SpringBoot 错误钉钉通知
    • Java JVM
    • Git 合并提交
    • CentOS7 OpenResty 部署
  • 2019年

    • Redis CLI
    • CentOS7 Nginx 日志
    • 编程式代码风格
    • IDEA 插件
    • Skywalking 源码环境搭建
    • SpringBoot Redis 超时错误
    • 编程式 gRPC
    • Java Arthas
    • Docker Compose Redis 缓存击穿
    • Docker ElasticSearch5.6.8 部署
    • Docker Mysql5.7 部署
    • Spring Redis 字符串
    • Docker Zookeeper 部署
    • Docker Redis 部署
    • SpringBoot Dubbo
    • CentOS7 CMake 部署
    • 应用程序性能指标
    • Java Code 递归
    • CentOS7 ELK 部署
    • CentOS7 Sonarqube 部署
    • Java Selenium
    • Java JJWT JUnit4
    • Spring 源码环境搭建
    • Java JUnit4
    • Java Web JSON Token
    • 编程式 FastDFS
    • Java XPath
    • Redis基础(二)
    • Redis基础(一)
    • Java MyBatis JUnit4
    • Java MyBatis H2 JUnit4
    • MyBatis 源码环境搭建
    • Git 配置
    • Java 核心
    • Java Dubbo
    • Java JavaCollecionsFramework
    • Java Maven
    • Java MyBatis
    • Java Spring
    • Java SpringMVC
    • MySQL
    • Redis
  • 2018年

    • Java HashMap
    • Java HashSet
    • Java Code 交换值
    • Spring Upgrade SpringBoot
    • Mac 编程环境
    • Java Log4j
    • 网络通信 Modbus
    • MySQL基础(二)
    • MySQL基础(一)
    • Java Stack
    • Java Vector
    • CentOS7 RabbitMQ 部署
    • CentOS7 Redis 部署
    • CentOS7 MongoDB 部署
    • CentOS7 基础命令
    • Java Eureka Zookeeper
    • CentOS7 MySQL 部署
    • Git 分支
    • CentOS7 Java环境配置
    • Java LinkedList
    • Java ArrayList
    • Spring Annotation Aop

标签: Maven

Java Maven

01/01/2019MavenJavaProgrammatic

本章是整理知识内容,为强化知识长期更新。

Mavan常用命令以及用法

  • 常用命令就要先了解Maven的生命周期

    • Maven的生命周期就是对所有的构建过程进行抽象和统一。包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤。
    • Maven的生命周期是抽象的,即生命周期不做任何实际的工作,实际任务由插件完成,类似于设计模式中的模板方法。所以必须有对应的插件才能执行对于的步骤。
    • Maven有三套相互独立的生命周期,分别是clean、default和site。每个生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段。
      • clean生命周期:清理项目,包含三个phase。
        • 1.)pre-clean:执行清理前需要完成的工作。
        • 2)clean:清理上一次构建生成的文件。
        • 3)post-clean:执行清理后需要完成的工作。
      • default生命周期:构建项目,重要的phase如下。
        • 1)validate:验证工程是否正确,所有需要的资源是否可用。
        • 2)compile:编译项目的源代码。
        • 3)test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。
        • 4)Package:把已编译的代码打包成可发布的格式,比如jar。
        • 5)integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。
        • 6)verify:运行所有检查,验证包是否有效且达到质量标准。
        • 7)install:把包安装到maven本地仓库,可以被其他工程作为依赖来使用。
        • 8)Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
      • site生命周期:建立和发布项目站点,phase如下。
        • 1)pre-site:生成项目站点之前需要完成的工作。
        • 2)site:生成项目站点文档。
        • 3)post-site:生成项目站点之后需要完成的工作。
        • 4)site-deploy:将项目站点发布到服务器
  • mvn clean

    • 清理项目构建文件。调用clean生命周期的clean阶段,实际执行pre-clean和clean阶段。
  • mvn install

    • 构建项目文件。实际执行pre-clean和clean,install以及之前所有阶段。
  • mvn install -Dmaven.test.skip=true

    • 构建项目的时候不执行测试。也可以使用插件来配置。

      <!-- surefire 插件用来在maven构建生命周期的test phase执行一个应用的单元测试 -->
      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
               <configuration>
                  <skipTests>true</skipTests>
                  <forkMode>once</forkMode>
                  <argLine>-Dfile.encoding=UTF-8</argLine>
               </configuration>
               <!-- 插件手动匹配JUnit 目前是使用4.10的版本-->
               <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.surefire</groupId>
                        <artifactId>surefire-junit47</artifactId>
                        <version>2.19.1</version>
                    </dependency>
                </dependencies>
         </plugin>
      
  • mvn eclipse:eclipse

    • 将pom项目转换成eclipse格式项目。
  • mvn jetty:run -war

    • 使用内置jetty启动项目,需要配置jetty扩展插件。也可以使用tomcat来作为插件。

      <!-- 配置Maven插件(mvn jetty:run -war可以运行项目) -->
      <plugin>
         <groupId>org.eclipse.jetty</groupId>
               <artifactId>jetty-maven-plugin</artifactId>
               <version>9.3.0.M1</version>
               <configuration>
                  <!-- 指定访问端口 -->
                  <httpConnector>
                     <port>80</port>
                  </httpConnector>
                  <!-- 间隔x扫描一次,实现热部署 
                  <scanIntervalSeconds>0</scanIntervalSeconds>
                  -->
                  <!-- 编写类文件之后,是否自动重启jetty;可选后面两个值[manual|automatic] 
                  <reload>manual</reload>
                  -->
                  <!-- 指定关闭端口 -->
                  <stopPort>9998</stopPort>
                  <stopKey>stop-jetty</stopKey>
                  <webApp>
                     <!-- 配置<contextPath>/</contextPath>,则访问路径为http://localhost:80 -->
                     <contextPath>/</contextPath>
                     <!-- 更改jetty默认webdefault.xml文件,主要修改了useFileMappedBuffer属性为false,使其不锁定静态文件 -->
                     <!-- 此文件在C盘\用户目录\.m2\repository\org\eclipse\jetty\jetty-webapp\9.1.0.RC1\找到jar包,打开jar包目录org\eclipse\jetty\webapp\目录中 -->
                     <!-- <defaultsDescriptor>webdefault.xml</defaultsDescriptor> -->
                     <defaultsDescriptor>src/main/resources/webdefault.xml</defaultsDescriptor>
                  </webApp>
               </configuration>
            </plugin>
      

CentOS7 Java环境配置

04/21/2018LinuxMavenGradleLinxuProgrammatic
  • 本章内容为早期笔记迁移。
  • 阅读提醒,权限root.操作流程并位遵循安全规则;线上环境请勿模仿。

文件存放位置。

  • opt
    • backup
    • javahome
    • mavenhome
    • gradlehome
mkdir -p /opt/{backup,javahome,mavenhome,gradlehome}