目录

插件篇

1. Maven中指定Java的编译版本和源文件编码方式

1. 1 第一种方式

1. 2 第二种方式

2.  maven 多模块打包,jar包和war输出到指定文件夹

maven多模块项目结构示例

父工程的pom中添加spring-boot-maven-plugin 的 outputDirectory

输出效果

MVN命令

1. 常用命令

2. 命令参数解释


插件篇

1. Maven中指定Java的编译版本和源文件编码方式

Maven默认编译版本是JDK1.5,在很多时候,发现有些代码报错,又找不到原因,很有可能是没有配置JDK版本。就如有一次我遇到的问题:定义全局异常处理类继承HandlerInterceptorAdapter时候,preHandle方法上面有@Override就一直报错,点开HandlerInterceptorAdapter源码,明显是有这个方法,后来发现JDK版本的问题,按如下方法设置好后,错误解决了。

1. 1 第一种方式

在项目的pom.xml文件中指定,但是此方法只对该项目有效,如下图红框所示,设置为JDK1.8。

<build><plugins><!-- 设置JDK版本 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin></plugins></build>

1. 2 第二种方式

在maven安装目录的conf文件夹下,修改settings.xml文件,在profiles节点里添加如下设置,如下图所示,设置为JDK1.8,此方法对所有Maven项目有效。

<profile><id>JDK1.8</id><activation><activeByDefault>true</activeByDefault></activation><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><encoding>UTF-8</encoding></properties>
</profile>

2.  maven 多模块打包,jar包和war输出到指定文件夹

maven多模块项目结构示例

父工程的pom中添加spring-boot-maven-plugin 的 outputDirectory

<properties><!-- properties中定义jar包的保存路径--><project.jar.output.directory>D:\JT\java\workspace\webvr-end\deploy</project.jar.output.directory>
</properties><build><pluginManagement><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!-- 文件名以及输出路径--><configuration><!-- 1.0.5表示版本号--><finalName>${project.artifactId}-1.0.5</finalName><outputDirectory>${project.jar.output.directory}</outputDirectory></configuration></plugin><!-- 跳过启动测试 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><configuration><skipTests>true</skipTests></configuration></plugin></plugins></pluginManagement>
</build>

输出效果

在父工程下,执行

mvn clean package -Dmaven.test.skip=true 

MVN命令

1. 常用命令

执行效果

命令

参数解释

Maven强制更新依赖

mvn clean install -e -U -e详细异常,-U强制更新
     

2. 命令参数解释

命令参数 备注
mvn -v --version 显示版本信息;
mvn -V --show-version 显示版本信息后继续执行Maven其他目标;
mvn -h --help 显示帮助信息;
mvn -e --errors 控制Maven的日志级别,产生执行错误相关消息;
mvn -X --debug 控制Maven的日志级别,产生执行调试信息;
mvn -q --quiet 控制Maven的日志级别,仅仅显示错误;
mvn -Pxxx  激活 id 为 xxx的profile (如有多个,用逗号隔开);
mvn -Dxxx=yyy  指定Java全局属性;
mvn -o --offline 运行offline模式,不联网更新依赖;
mvn -N --non-recursive 仅在当前项目模块执行命令,不构建子模块;
mvn -pl --module_name 在指定模块上执行命令;
mvn -ff --fail-fast 遇到构建失败就直接退出;
mvn -fn --fail-never 无论项目结果如何,构建从不失败;
mvn -fae --fail-at-end 仅影响构建结果,允许不受影响的构建继续;
mvn -C --strict-checksums 如果校验码不匹配的话,构建失败;
mvn -c --lax-checksums 如果校验码不匹配的话,产生告警;
mvn -U 强制更新snapshot类型的插件或依赖库(否则maven一天只会更新一次snapshot依赖);
mvn -npu --no-plugin-s 对任何相关的注册插件,不进行最新检查(使用该选项使Maven表现出稳定行为,该稳定行为基于本地仓库当前可用的所有插件版本);
mvn -cpu --check-plugin-updates 对任何相关的注册插件,强制进行最新检查(即使项目POM里明确规定了Maven插件版本,还是会强制更新);
mvn -up --update-plugins [mvn -cpu]的同义词;
mvn -B --batch-mode 在非交互(批处理)模式下运行(该模式下,当Mven需要输入时,它不会停下来接受用户的输入,而是使用合理的默认值);
mvn -f --file <file> 强制使用备用的POM文件;
mvn -s --settings <arg> 用户配置文件的备用路径;
mvn -gs --global-settings <file> 全局配置文件的备用路径;
mvn -emp --encrypt-master-password <password> 加密主安全密码,存储到Maven settings文件里;
mvn -ep --encrypt-password <password> 加密服务器密码,存储到Maven settings文件里;
mvn -npr --no-plugin-registry 对插件版本不使用~/.m2/plugin-registry.xml(插件注册表)里的配置;

Maven: 让你的编译和打包自动化相关推荐

  1. jenkins+maven+docker java项目编译、打包、构建镜像、上传私有仓库、web容器部署

    本环境非常简单,主要实现如下流程功能 员工通过eclipse提交java代码---gitlab更新代码----jenkins通过maven编译打包----生成war包----制作docker镜像并上传 ...

  2. Maven多个mudule只编译、打包指定module

    在多module的maven项目中,如果每次打包整个工程显得有些冗余和笨重. 例如A,B,P的继承关系为 P | -– A | -– B 即P包含A,B的module,每次打包P都会将A,B都打包. ...

  3. java编译(打包)完成,导致Excel文件损坏的问题

    问题描述 在项目中放置一个可供用户登录后下载的excel模版,项目在打包成功后,在target中直接打开excel,发现excel已经损坏. 问题原因 项目在编译或者打包过程中,会对excel进行编译 ...

  4. 解决maven 引用JDK内部类编译错误 程序包:com.sun.xml.internal.bind.marshaller.CharacterEscapeHandler不存在...

    解决maven 引用JDK内部类编译错误 程序包:com.sun.xml.internal.bind.marshaller.CharacterEscapeHandler不存在- 网上很多帖子的解决方案 ...

  5. Maven多模块项目编译失败:程序包xxx不存在

    Maven多模块项目编译失败:程序包xxx不存在 项目结构如下: parent(父类工程) | - - - - - common(通用工具类子工程) | - - - - - projectA(spri ...

  6. dubbo源码编译和打包

    本文以dubbo2.4.11源码编译和打包例 dubbo官网:http://dubbo.io/ 源码:https://github.com/alibaba/dubbo 用户指南:http://dubb ...

  7. andriod 自编译,打包生成apk文件--------------------cocos2d-x 3.0正式版本(7.7)

    一.搭建搭建环境 1. 安装JDK 和 Android SDK 2. 配置环境变量 D:\android-sdk-windows\tools C:\Program Files\Java\jdk1.6. ...

  8. Tungsten Fabric SDN — 软件项目编译与打包

    目录 文章目录 目录 tf-dev-env 编译 打包 分发 tf-dev-env tf-dev-env 是编译.打包 Tungsten Fabric 的工具集合,区别于 contrail-dev-e ...

  9. Eclipse——Maven项目工程无法编译但可以运行解决方案

    问题描述 Maven项目工程无法编译但可以运行. 只能运行上一次成功的版本. 问题分析 pom.xml文件错误. 解决方案 方案一:选中项目 --> 右键 --> Maven --> ...

最新文章

  1. 一名Android程序员如何减少代码中该死的-if-else-嵌套,怎么让代码更简洁?
  2. nginx与Apache的涉及的计算机原理说明
  3. STL札记3-2(hashtable关联容器set、map)
  4. iphone电池怎么保养_怎么保持iPhone的电池健康?掌握这4个方面,3年不用换电池...
  5. C语言将不固定的表达式转换为后缀表达式(附完整源码)
  6. 【转】android之在activity中控制另一个activity的UI更新_如何在activity之间传递handler...
  7. 敏捷开发流程的8个步骤_敏捷开发——个体和互动高于流程和工具
  8. 初步使用计算机学设计,幼儿园计算机教学设计参考
  9. redis命令参考string---MSETNX
  10. 犀牛插件开发-插件安装器制作-rhino插件
  11. 解决Vue中的对象属性无法实现动态响应
  12. 项目组织对ERP软件实施的影响
  13. hp服务器 iLO远程管理 python api模块 hpilo-python 接口列表
  14. 常见的肾囊肿症状有哪些?
  15. php1106打印机怎么使用,1106打印机驱动使用说明
  16. 移动端和前端开发的共性
  17. iPad 4.2.1 非完美越狱
  18. mysql 的事件_一文总结MySQL数据库事件--定时任务实现方式
  19. 【网络信息安全】身份认证
  20. 李宏毅教程系列——增强学习

热门文章

  1. sql server 数据库向java接口推送数据
  2. Android开发之实现两个手机之间的通讯
  3. 马斯克讽刺疫情恐慌“愚蠢”遭怒怼!苹果、谷歌、微软等硅谷巨头近10万名员工已回家工作...
  4. Self-supervised Learning: Generative or Contrastive
  5. 一个新的项目:狼人杀(二)
  6. 尺度空间与图像金字塔(多分辨率)超级细致
  7. CISCO 零日漏洞 CVE-2016-6415,由NSA方程组泄露档案中探得
  8. 孤尽训练营打卡日记day24--系统安全规约
  9. c语言转换为python语言_【转】用C语言扩展Python的功能
  10. 用C语言设计一个订房程序,酒店预定程序的设计.doc