0

我有一个非常大的代码库,可以编译成 JAR。我还使用 shade 插件将其编译下来并将其与所有依赖项打包在一起。我还使用 war 插件来获取 WAR 文件。

关于 WAR 文件,一旦创建了目标,我就会有一个构建后事件,它只是将 WAR 文件复制到其目标,所以从技术上讲,我对此很满意。

我遇到的问题是其他两个 JAR。它们都共享相同的 artifactId,因为它们都构建在单个 pom.xml 中,并且由于多种原因这是不可接受的(包括但不限于某些依赖项缓存对于实现这一点非常愚蠢的事实) JAR 是瘦的,一个是完全依赖的)。

我需要做的是创建一个 pom.xml (或其组)适合构建(由 Jenkins),它可以使用相同的代码库(从 Github 提取)但创建两个单独的 JAR 文件,每个文件都有自己的 artifactId。

作为一名 Maven 新手,我已经通读了入门书,在我看来,我想要的是一个带有两个模块的父 pom.xml。但据我所知,每个模块都意味着一个带有单独代码的单独目录。正如我所说,这是从相同的代码库构建的。唯一的区别是一个是从“常规”构建构建的,另一个是使用“阴影”插件和目标构建的。

我能想到的唯一另一件事是构建“常规”JAR,然后使用“完整?”分类器构建阴影 JAR。如果这是答案,我可以谦虚地要求一些成人监督如何做到这一点,因为我没有看到如何做到这一点。

如果这不是答案,我怀疑这一定是一个常见问题,所以再一次,一些指导会非常有帮助!

4

1 回答 1

1

我想出的解决方案是对“阴影”罐子使用分类器。因此,工件不会发生碰撞。

然后我在访问它时遇到了问题,但也找到了该问题的解决方案 -如何使用分类器访问 jar?

于 2014-06-11T14:37:47.420 回答