【问题标题】:How To Create Different Flavor Of Build with Maven如何使用 Maven 创建不同风格的构建
【发布时间】:2026-01-09 16:45:01
【问题描述】:

我想用 maven 构建我的安卓项目。

有3个项目


项目-A(jar文件)

项目-B(jar文件)

项目-C(sdk包)


项目C依赖于B

项目B依赖于A

使用 maven 我想通过 build 发布两种风格

第一种风格:B 发布 JAR(其中包含来自 B & A 的代码)

第 2 种风格:C 发布 SDK(其中包含来自 C & B & A 的代码)

我可以从 MAVEN 控制这种行为吗?

【问题讨论】:

  • 看看 maven 配置文件。这可能是您所需要的。
  • 您希望两者都成为一个构建的结果,还是选择构建哪个?
  • 一个 JAR 不包含来自其他项目的类/代码,所以你说的是一个 jar-with-dependencies (fatjar / ueberjar)...

标签: maven maven-3 maven-plugin maven-assembly-plugin


【解决方案1】:

对于“第一种风格”,您可以使用 maven-assembly-plugin 和预定义的 desriptor jar-with-dependencies,这会将所有依赖项嵌入到项目的 jar 中,但要注意传递性也可以嵌入其中的依赖项。否则,您也可以使用 maven-shade-plugin,其中包含您可能感兴趣的选项,例如 minimizeJar,以及更简单的配置包含和排除的方法 (see doc here)。

对于“第 2 种风格”maven-assembly-plugin 的使用将非常适合其 bin descriptor,或者如果您需要包含其他文件(@ 987654322@)。您可以在 SO 上找到一些关于如何配置和使用 maven-assembly-plugin 的示例(您还可以查看我已经回答的有关此插件的问题)

【讨论】: