我有一个网络片段项目。该项目的输出是一个名为fragment.jar的 JAR 文件。
然后将此 fragment.jar 复制到我的 MAIN PROJECT 的 WEB-INF/lib 中。当然,被调用的主项目的输出是一个名为 web.war 的 war 文件。
fragment.jar 中有 web-fragmnet.xml。整个war 文件部署到WildFly 9。Wildfly 将fragment.jar 识别为Web 片段。但是,在 web-fragment 内部,有一些 JSF 文件具有 Primefaces 的依赖项。我不知道将 Primefaces 依赖项(jar)放在哪里以避免 ClassNotFound 异常。
我尝试创建 Gradle 多项目构建,将片段本身作为子项目。这行得通,Gradle 将所有子项目依赖项复制到 WEB-INF/lib 中。然而,这需要整个项目都存在于机器上。但我希望能够仅分发 fragment.jar 及其所有依赖项。
编辑:我尝试使用 Gradle 的 ShadowPlugin 创建一个胖罐。事情发生了一些变化,但这次我得到了另一个例外:例外