我在项目的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) - 无法解析
任何帮助都将不胜感激。
由于
答案 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