我是在一个项目,愿意扩展键盘斗篷功能与新的。为了做到这一点,我们使用SPI,并且我们有多个jar文件用于热部署到Wildfly的keycloak服务器。我们对jars之间的依赖有很大的问题。我们需要将所有功能打包为EAR,但我没有找到正确的配置。我的例子是一个后Keycloak - Custom SPI does not appear in list,它解释了如何将jar打包到EAR中以便在Jboss上部署,并且不清楚我们应该将jar依赖项放在哪里。
关于mavem项目结构的详细信息:
KeycloakProject (packaging pom)
|
+ - keycloak-entities-providers (packaging pom)
| |
| +- keycloak-first-entity-provider (packaging jar)
| | |
| | +- META-INF
| | |
| | +- services
| | |
| | +- org.keycloak.authentication.AuthenticatorFactory
| | +- org.keycloak.connections.jpa.entityprovider.JpaEntityProviderFactory
| | | ...
| | +- jboss-deployment-structure.xml
| +- keycloak-second-entity-provider (packagind jar)
| |
| +- META-INF
| |
| +- services
| | |
| | +- org.keycloak.services.resource.RealmResourceProviderFactory
| | ...
| +- jboss-deployment-structure.xml
+- keycloak-identity-providers (packaging pom)
|
+- keycloak-first-identity-provider (packaging jar)
| |
| +- META-INF
| |
| +- services
| |
| +- org.keycloak.authentication.AuthenticatorFactory
| +- org.keycloak.connections.jpa.entityprovider.JpaEntityProviderFactory
| | ...
| +- jboss-deployment-structure.xml
+- keycloak-second-identity-provider (packagind jar)
|
+- META-INF
|
+- services
| |
| +- org.keycloak.services.resource.RealmResourceProviderFactory
| ...
+- jboss-deployment-structure.xml我需要知道EAR包上是否有一个JBos-Deployment-structure.xml,在本例中必须包含哪些内容。每个jar文件都有自己的依赖项,并且需要依赖另一个jar文件(就像keycloak-第二个实体-提供者依赖于keycloak-)。
谢谢!
发布于 2019-12-11 22:26:01
是的,您应该只为整个EAR包创建一个jboss-deployment-structure.xml描述符。它应该在耳伪源中定义。services、persistence.xml和其他东西应该和它们相应的jars一起保存。因为每个SPI都有单独的工件,所以可能必须在jboss-deployment-structure.xml中将每个jar声明为单独的jboss-deployment-structure.xml。然后,您还必须将每个子部署都提供给其他人(Wildfly和Jboss现在是您的朋友了,您还可以检查Keycloak子系统源代码中的部署扫描器实现)。
老实说,我认为将每个SPI实现划分为不同的工件并没有带来真正的利润,到目前为止,您还没有创建您自己的自定义SPI。我也经历了这个结局,只有一个神器。
https://stackoverflow.com/questions/59289074
复制相似问题