解决 IDEA 编译爆红问题

  1. mvn idea:idea

功能类似断点续传,爆红可能是之前有哪些包没有加载进来

  1. invalidate cache restart -> 再重新 reimport

可能只是单纯 IDEA 缓存的问题

  1. mvn idea:module

根目录下 .iml 文件没有可能会导致不识别 .java 文件,需要重新生成

绝大部分时候,删除项目下的 .iml 文件,再重新 import 下就可以解决问题

  1. IDEA Maven 下载源码出现:Cannot download sources Sources not found for: xxx
1
2
# 在对应项目 pom.xml 所在目录下执行以下命令:
mvn dependency:resolve -Dclassifier=sources

记录 Maven 常用参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
-h,--help                              Display help information
-am,--also-make 构建指定模块,同时构建指定模块依赖的其他模块
-amd,--also-make-dependents 构建指定模块,同时构建依赖于指定模块的其他模块
-B,--batch-mode 以批处理(batch)模式运行
-C,--strict-checksums 检查不通过,则构建失败(严格检查)
-c,--lax-checksums 检查不通过,则警告(宽松检查)
-D,--define <arg> Define a system property
-e,--errors 显示详细错误信息
-emp,--encrypt-master-password <arg> Encrypt master security password
-ep,--encrypt-password <arg> Encrypt server password
-f,--file <arg> 使用指定的 POM 文件替换当前 POM 文件
-fae,--fail-at-end 最后失败模式:Maven 会在构建最后失败(停止)。如果 Maven refactor 中一个失败了,Maven 会继续构建其它项目,并在构建最后报告失败
-ff,--fail-fast 最快失败模式:多模块构建时,遇到第一个失败的构建时停止
-fn,--fail-never 从不失败模式:Maven 从来不会为一个失败停止,也不会报告失败
-gs,--global-settings <arg> 替换全局级别 settings.xml 文件(Alternate path for the global settings file)
-l,--log-file <arg> 指定输出日志文件
-N,--non-recursive 仅构建当前模块,而不构建子模块(即关闭 Reactor 功能)
-nsu,--no-snapshot-updates 强制不更新 SNAPSHOT(Suppress SNAPSHOT updates)
-U,--update-snapshots 强制更新 releases、snapshots 类型的插件或依赖库(否则 Maven 一天只会更新一次 snapshot 依赖)
-o,--offline 运行 offline 模式,不联网进行依赖更新
-P,--activate-profiles <arg> 激活指定的 profile 文件列表(用逗号 [,] 隔开)
-pl,--projects <arg> 手动选择需要构建的项目,项目间以逗号分隔;A project can be specified by [groupId]:artifactId or by its relative path
-q,--quiet 安静模式,只输出 ERROR
-rf,--resume-from <arg> 从指定的项目(或模块)开始继续构建
-s,--settings <arg> 替换用户级别 settings.xml 文件(Alternate path for the user settings file)
-T,--threads <arg> Thread count, for instance 2.0C where C is core multiplied
-t,--toolchains <arg> Alternate path for the user toolchains file
-V,--show-version Display version information WITHOUT stopping build
-v,--version Display version information
-X,--debug 输出详细信息,debug 模式

Maven 打包指定子工程项目(多模块项目打包)

参考:Maven 打包指定子工程项目(多模块项目打包)

1
mvn clean package -pl 子模块名 -am

参数说明

  • -am / --also-make:同时构建所列模块的依赖模块
  • -amd / --also-make-dependents:同时构建依赖于所列模块的模块
  • -pl / --projects:构建指定的模块,模块间用逗号分隔
  • -rf / --resume-from:从指定的模块恢复反应堆

Maven 搜索依赖

1
2
3
mvn dependency:tree | grep commons-logging
# or
mvn dependency:tree | findstr commons-logging