Jackson 在 Maven 中的依赖和在 Eclipse 中的开发 JBoss EAP 6.3/6.4

Jackson dependency in maven and developing in eclipse with JBoss EAP 6.3/6.4

我正在使用 eclipse 并使用 jackson 作为 json 提供商使用 resteasy 开发一些服务:

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxrs</artifactId>
        <version>2.3.10.Final</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jackson-provider</artifactId>
        <version>2.3.10.Final</version>
        <scope>provided</scope>
    </dependency>

这些库实际上是通过 JBoss EAP 6.1+ runtime 提供给构建路径的。但我必须通过自定义 ObjectMapper 设置一些杰克逊特定的选项。为此,我添加了另一个对 jackson 的依赖:

    <dependency>
        <artifactId>jackson-mapper-asl</artifactId>
        <groupId>org.codehaus.jackson</groupId>
        <version>1.9.9</version>
        <scope>provided</scope>
    </dependency>

现在这破坏了我的 eclipse 构建,因为服务器运行时仅包含 ee 库。当然,我可以更改范围,但这会导致工件包含在最终 war 中,即使它已经打包为 jboss 模块。

将 JBoss 工具更新到 4.3 并添加 src/main/webapp/WEB-INF/jboss-deployment-structure.xml 成功了:

<jboss-deployment-structure>
   <deployment>
      <dependencies>
         <module name="org.jboss.resteasy.resteasy-jackson-provider" export="true" />
         <module name="org.codehaus.jackson.jackson-core-asl" export="true" />
         <module name="org.codehaus.jackson.jackson-mapper-asl" export="true" />        
      </dependencies>
   </deployment>
</jboss-deployment-structure>