当前位置: 首页 > 面试题库 >

Java Maven模块+构建单个特定模块

皇甫敏达
2023-03-14
问题内容

我有一个父项目多模块Maven项目P和三个子模块ABC。这两个BC是战项目,都依赖于A。

我可以输入mvn compileP和拥有所有的子模块正确的编译的。当我要对特定模块进行操作时,问题就来了。

我希望能够为项目打包战争B,但是当我从B的目录运行package命令时,它抱怨找不到的依赖项A

我从这个问题中了解到:Maven和相关模块,也许Maven并不是真正为这种类型的依赖关系解决而设计的,但这引出了我该如何打包的问题B

  1. mvn package当我真的想要时,是否必须为整个项目层次结构运行B?

  2. 每次打包时都必须将A的快照安装到本地存储库中B吗?

A仍在积极开发中时,第二种情况就不好玩了。


问题答案:

这里有最佳做法吗?

使用Maven 高级反应堆选项,更具体地说:

-pl, --projects
        Build specified reactor projects instead of all projects
-am, --also-make
        If project list is specified, also build projects required by the list

因此,只需cd进入父P目录并运行:

mvn install -pl B -am

这将构建B和B所需的模块。

请注意,如果引用artifactId的目录名称与目录名称不同,则需要使用冒号:

mvn install -pl :B -am


 类似资料:
  • 模块标记 coolie-cli 的模块构建方式应该是比较特殊的一类,与 webpack 一样,都是另辟蹊径。 webpack:依赖模块放到数组里,数组索引值就是模块 ID。 coolie-cli:依赖模块全局标记 ID(三十六进制)。 coolie-cli 可以将长长的物理路径压缩成最短的字符,达到压缩率最大化,而不是将模块直接合并。 // module1.js define(function(r

  • 但我在模块2中添加了依赖项。模块2是最后一个项目。 项目结构如下。 父项目的pom.xml

  • 公共模块 在介绍分块模块之前,来说些公共模块。 当一个项目逐渐壮大的时候,势必会出现一些公共模块。 如何分配和处理这些公共模块,需要全局考虑,是一个不小的利弊权衡。 如工程里共有 20 个入口模块, 5 个入口模块引用了同一个模块 a, 10 个入口模块引用了同一个模块 b, 15 个入口模块引用了同一个模块 c, 20 个入口模块引用了同一个模块 d。 如何分配这 4 个公共模块呢? 全部打包在

  • 问题内容: 我在Jenkins中建立了一个大型Maven多模块构建。它是为增量构建而设置的。 触发后,它将解析所有POM并弄清楚需要构建什么。 当前已将其设置为触发SCM更改。 我想进行此构建,以便可以执行以下操作: 仍然手动启动它。当我这样做时,它的增量构建行为将像今天一样起作用。 从Subversion提交钩子触发构建 。我想知道,如果我通过出色的指令来设置提交挂钩的麻烦,那将不会导致构建过程

  • 我有一个多模块梯度构建。我想使用root为一个模块执行目标。例如:

  • 异步模块 异步模块与同步模块相反,指的是模块是在运行时才去异步加载然后再运行。 setTimeout(function(){ // 异步模块`async.js`在 1000ms 后加载,然后再运行 require.async('async.js', function(exports){ // 模块加载完成后,返回模块的导出 // exports