是否可以构建一个 "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
获取的。
如果仔细考虑的话,可能会有一些棘手的解决方案(也可能有陷阱)来实现这一点。但我永远不会推荐这样的。
我目前的情况是:
项目 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
获取的。- 暂时在
如果仔细考虑的话,可能会有一些棘手的解决方案(也可能有陷阱)来实现这一点。但我永远不会推荐这样的。