maven顶级pom和子pom的版本号批量修改
Versions maven plugin 修改版本
修改多模块工程里的子模块版本号,cd进入子模块目录里,执行:
mvn org.codehaus.mojo:versions-maven-plugin:2.5:set -DnewVersion=0.0.16.RELEASE -DoldVersion=*
-DoldVersion=* 这个参数会把工程里所有的依赖子模块的地方改成0.0.16.RELEASE版本,如果不加这个参数的话,
默认只会修改与该子模块version相等的模块为新的version(默认的-DoldVersion等于该子模块的现版本号)
常用Maven插件介绍
将依赖包升级到最新版本:
mvn versions:use-latest-versions
maven的标签可以排除父父父父包的某些依赖包
使用maven helper插件可以更方便的解决问题
Maven 执行Javadoc时控制台输出乱码问题
IntelliJ IDEA使用maven-javadoc-plugin生成Java Doc控制台乱码
Maven在Java8下如何忽略Javadoc的编译错误详解
maven打包,跳过生成javadoc
有时候由于代码中注释错误(比如方法参数)或者maven javadoc插件版本有问题,导致打包报错,而我们着急打包验证问题,没有时间一一修改错误,这时候可以先跳过生成javadoc,继续下一步工作。
命令:mvn clean package -Dmaven.javadoc.skip=true
Windows环境下安装Nexus
maven打包的jar指定启动类
多模块Maven工程单独打包某一模块工程
Versions Maven Plugin,maven升级项目中依赖的包
mvn versions:use-latest-releases 检查maven仓库中最新的版本 并 升级最新的release版本
mvn versions:display-dependency-updates 检查maven仓库中是否有更新的版本
http://www.mojohaus.org/versions-maven-plugin/index.html
Resolve ranges插件,让maven如何自动发现最新版本jar包
git查看文件改动记录
怎样使用BAT脚本实现自动按键盘的某个键
批处理命令--call和start
mvn deploy子工程时,一定要确保parent工程在nexus服务器已存在,如果不存在,请把parent工程也deploy上去,否则别人引入子工程的时候,jar包没法下载下来
将jar添加到本地仓库及上传Jar到远程marven仓库
Maven中的dependencyManagement 意义
但是,多模块工程里:fsp-produt为parent工程,另外两个为子工程,子工程里使用标签指明和fsp-product的关系
fsp-product 声明式依赖了flow-impl的版本号为0.0.1.RELEASE
----product-impl 写明了依赖flow-impl的版本号为0.0.2-SNAPSHOT
----product-server 这个模块是打包的入口:依赖了product-impl,但是为直接依赖flow-impl,最终打的包中flow-impl的版本号为0.0.1.RELEASE的
猜测:依据最短路径原则,fsp-product和product-impl中的flow-impl相对于product-server是一样的路径,而fsp-product在最上面,最先出现,所以以fsp-product的为准
证明:
1.将fsp-product中的声明式依赖去掉,则打出的包是0.0.2-SNSPSHOT(已证明)
2.将fsp-product中的声明式依赖改成直接依赖,则打出的包是0.0.1.RELEASE(直接依赖server会继承,已证明)
3.在fsp-product的父工程中(ocrm-microservice)声明式依赖flow-impl的版本,则打出的包是0.0.2-SHAPSHOT(证明失败,打出的包仍然是0.0.1.RELEASE版本的)
所以遇到这种情况,先以父工程里声明式依赖或者直接依赖的版本号为准。(或者父父工程,或者父父父工程)
maven可选依赖(Optional Dependencies)和依赖排除(Dependency Exclusions)
MAVEN使用快照不能获取最新jar的问题
Maven中的库(repository)详解
maven 不能使用 snapshot 的解决方式