是否可以构建一个 "sub jar" 的 Maven 项目?

Is it possible to build a "sub jar" of a Maven project?

我目前的情况是:

项目 A 使用 Maven 程序集插件构建到胖 jar 中。

项目 B 使用项目 A 中构建的 jar。它作为资源添加到项目中,并使用流程构建器在单独的流程中启动。

我想知道是否可以仅使用一个 Maven 项目实现类似的行为。即构建仅包含项目 A 所需的 类 和依赖项的 jar,然后使用预构建的 jar.

构建项目的其余部分

对不起,如果我在这里不是很清楚。

这违背了一些 Maven 的核心概念:

  • 一个项目,一个模型(POM)。两个项目(A、B),两个模型(POM)。
  • POM 中有一个 artifactId。应该命名的第二个工件 (jar) 是什么?
  • 一个项目导致一个工件。在同一个项目中没有额外的“prebuilt jar”。
  • 依赖项适用于整个项目(以及可能的 sub-module 项目)。我不知道如何“仅包含项目 A 所需的 类 和依赖项”。
  • 存储工件:

    • 暂时在<project>/target
    • 在本地 Maven 仓库中(默认:~/.m2/repository
    • 可能在远程 Maven 存储库中


    ... 而资源是在构建期间从 <project>/src/main/resources 获取的。

如果仔细考虑的话,可能会有一些棘手的解决方案(也可能有陷阱)来实现这一点。但我永远不会推荐这样的。