使用 Maven 从 war 项目构建 jar 库?

building a jar library from a war project using maven?

我们有一个 EAR 项目,其中有一个 WAR 项目。使用Maven,所以pom.xml。作为任何项目的典型,该项目还包含许多其他功能中的一个重要功能(例如 Job Scheduling“JBS”)。由于计划在不久的将来退出整个项目,因此不鼓励在这个项目上花费太多(无论是错误还是增强)。

因此,为了 运行 作为单独应用程序的 (JBS) 功能,复制了整个 EAR 项目(也是为了保存 time/cost)。结果,所有 Java 包和 类(JBS 项目必需的)都被复制了。在这种情况下,如果我们在主项目中更新一个或多个 类,这个 (JBS) 功能 project/application 就会过时(需要更新)。

事实是这个 JBS 功能项目只需要 Java 类 的许多包(来自主 EAR-WAR 项目),不需要 99%网络模块和其他。我正在从 JBS 项目中删除所有不必要的东西。然后我想创建一个包含所有 java 类 的 JAR 库,这样 JBS 项目就可以依赖这个 JAR。

我不知道将这些 类 从主项目中分离出来是否是个好主意(以创建另一个 Java 项目)。我想继续将这些 类 作为主要项目的一部分。然后,这会很好,因为当这些 类 中的一个或多个发生更改时,将(立即)生成新版本的 JAR。然后 JBS 项目将使用这个更新的 JAR。

我们怎样才能做到这一点?我知道,通过 Maven,我们可以对这种性质的项目进行 build/package jar/war/ear。我不是maven专家(也没有系统学习)。

但是,有没有一种方法可以从 WAR pom.xml 中另外创建一个或多个 JAR?换句话说:我的意思是 WAR 的 pom.xml 将创建一个 WAR。除了创建一个 WAR,maven 可以帮助创建额外的 JAR 吗?或者 Maven 可以从一个包中创建两个包 pom.xml?

或者我应该在主项目中用所有这些 packages/classes 创建一个单独的模块,并有自己的 pom.xml 来生成必要的 JAR?为此,我很可能需要修改主项目的结构。除非没有办法,否则我想避免这种情况。

你能给点建议吗?

似乎对您来说最好的办法是创建一个 multi-module 项目,其中既包含 JAR 又包含另一个项目。这样,您可以轻松 change/build 将它们组合在一起,但您创建了单独的工件。