com.google.code.gson没有得到解决

时间:2014-01-30 18:40:02

标签: json gson cq5

我在项目的pom.xml中包含了google gson依赖项,如下所示:

        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.2.2</version>
        </dependency>

我能够毫无问题地构建项目,但是当我点击URL时,页面不会加载。这是一个CQ5项目,当我访问系统/控制台来调试问题时,我发现项目包没有启动。此外,它给出了错误com.google.gson,version = [2.2,3) - 无法解析

任何帮助都将不胜感激。

由于

2 个答案:

答案 0 :(得分:1)

除了在pom.xml中添加依赖项外,还必须在OSGi容器中安装它。您有两个选择:

<强> 1。将JAR包含在CQ包中。

在CQ软件包安装期间,所有JAR都放入CQ包文件夹/jcr_root/apps/APP_NAME/install are installed automatically。因此,您可以将GSON库放入此文件夹,它将被添加到OSGi容器中。

如果您使用程序集插件来创建CQ包,请将以下行添加到程序集描述符中:

<dependencySets>
    <dependencySet>
        <outputDirectory>/jcr_root/apps/YOUR_APP/install</outputDirectory>
    </dependencySet>
</dependencySets>

它会将范围为runtime的所有依赖项复制到ouputDirectory

<强> 2。将JAR添加为捆绑包中的嵌入式依赖项

如果您想让GSON仅适用于您的捆绑包,而不是OSGi中的其他捆绑包(例如,因为已经安装了另一版本的GSON),您可以嵌入库。使用Maven bundle插件的Embed-Dependency指令,例如:

<Embed-Dependency>gson;scope=runtime</Embed-Dependency>

答案 1 :(得分:0)

我建议在程序包项目中配置程序包插件(配置过滤器的位置)。如documentation中所述:

<plugin>
            <groupId>com.day.jcr.vault</groupId>
            <artifactId>content-package-maven-plugin</artifactId>
            <configuration>

            <embeddeds combine.children="append">
                    <embedded1>
                        <groupId>com.something.grouip</groupId>
                        <artifactId>your-artifact</artifactId>

                    </embedded1>

               </embeddeds>
            </configuration>
...
...
</plugin