在不使用mvn包的情况下重新打包war,只在少数依赖项目上运行verify



Hi-My依赖关系结构如下:

--A
---B
 ---C
 ---D
---E
----F
----G
-----H
---I

->[A]是一个网络项目,将引发一场战争。

->如果我更改[F][G]并且只构建

->如何在尽可能短的时间内使用[F]和[G]的构建结果为项目[A]重新创建战争?

除了takari插件,我还有什么选择。

好的,让我解释一下我的整个问题,以及我如何解决它的计划。

问题我的项目中有一个非常复杂的依赖树(许多开发人员编写的子项目)。每次开发人员对任何项目进行更改时。Mvn-verify在父pom中运行,以验证用户更改是否不会破坏环境。在mvn验证成功后,创建的战争将被部署。如果一切正常,则保留更改,否则将向开发人员提供日志报告并要求其重新检查。当然,这整个过程都是由脚本自动完成的。

我觉得在所有项目上运行mvn验证是浪费时间和不必要的操作。所以我期待着减少这段时间。

我对时间缩减的想法如下:

我的解决方案1) 计算依赖树

2) 仅对父pom和开发人员更改的项目之间的路径中的项目运行mvn-verify。

我计划从依赖树中检查这一点,然后在单个项目上运行mvn安装。但是,如果有其他方法,请结合第3点,提出最快的方法

3) 在这之后,我将在脱机模式下运行mvn-verify,并跳过我的父pom上的测试,以便加快速度。(我需要一个答案来避免这一步)

我可以使用离线模式,因为在计算依赖关系树时,所有的依赖关系都会被下载,并且当前的依赖关系已经安装在我的本地存储库中。现在,在这一步之后,我已经做好了部署战争的准备。

该方法中有任何缺陷吗?我如何加快2+3组合

不幸的是,大多数版本的Apache Maven将无法引用在reactor内部生成的构建工件。对于运行大多数版本的ApacheMaven的大多数安装,您需要首先安装WAR依赖项,然后才能安全地打包WAR,并确信您正在获取依赖项中的新更改。

要实现这一点,您应该运行mvn -pl :f,:g install ; mvn -pl :a package,它将首先将您最近的更改推送到存储库中,然后打包您的web应用程序。该解决方案可以在最少的ApacheMaven调用中构建最少数量的模块。祝你好运

最新更新