有没有办法在右键单击并从CRXDE中选择“Build Bundle”时触发的Bundle构建过程中添加其他构建步骤?
我现在的具体用例是能够运行xjc编译器为JAXB绑定生成一些额外的Java源类,以便与第三方Web服务进行交互。但具体的附加任务可能是真的。
我可以看到单击Build Bundle项会触发对/ libs / crxde / build的POST请求,其中包含两个参数,一个指示包的根目录以及包描述符的位置。此URL由com.day.crx.ide.CRXDEBuildServlet servlet提供服务,该servlet是com.day.crx.crxde-support软件包的一部分。
现在我不得不在CRXDE外部运行xjc进程(在这种情况下从命令行通过Maven)然后使用vlt将生成的.java文件推回到JCR树中,然后右键单击Build Bundle过程
我意识到我可以在外部构建我自己的OSGi包并将其安装到Felix,但我正在寻找一种方法来避免这种情况,因为它会使我们的开发环境变得更加复杂,尤其是团队中的一些初级CQ人员。
答案 0 :(得分:2)
对于那些寻找这个问题答案的人来说,遗憾的是没有。嵌入在CQ中的捆绑构建过程非常基础,并且我没有发现任何可以使用自定义步骤扩展它的钩子。
如果您需要为捆绑包执行自定义构建,其中包含其他步骤,则需要使用Apache Maven等外部构建工具,然后将捆绑包部署到CQ服务器(可以轻松地将其作为Maven的一部分来完成)构建过程)。
我们继续创建了一个Maven Archetype,我们现在将其用作所有CQ项目的基础,并且不再使用CQ中嵌入的bundle构建过程。我们使原型免费提供,所以如果你想使用它,你可以在这里阅读:
http://www.cqblueprints.com/xwiki/bin/view/Blue+Prints/The+CQ+Project+Maven+Archetype
干杯