如何在CQ5 Archetype Maven项目中引入自动完成功能,并使eclipse识别像SlingRepository,javax.jcr.Node等CQ类?

时间:2014-12-18 09:33:21

标签: java eclipse maven cq5 spring-tool-suite

我是maven的新手。我已按照此链接创建了CQ5 maven archtype Link

这些是我遵循的步骤:

1)在cmd(windows)

中执行此命令
mvn archetype:generate     -DarchetypeRepository=http://repo.adobe.com/nexus/content/groups/public/     -DarchetypeGroupId=com.day.jcr.vault     -DarchetypeArtifactId=multimodule-content-package-archetype     -DarchetypeVersion=1.0.2     -DgroupId=my-group-id     -DartifactId=mvnproject     -Dversion=1.0-SNAPSHOT     -Dpackage=com.xxx.mvnproject    -DappsFolderName=mvnproject     -DartifactName="My Project"     -DcqVersion="5.5.0"     -DpackageGroup="xxx"

2)将Eclipse(Spring Tools Suite)中的项目导入为现有Maven项目。所以我相信STS已经安装了Maven M2插件。

3)在cmd mvn -PautoInstallPackage clean install

中执行此命令

4)所以当我检查/ apps时,我看到我的一些东西被安装在CQ库中。

问题:在STS(Spring工具套件)中,Java文件没有" Ctrl + space"自动完成功能,因为它们不在java类路径中。如何激活自动完成功能?

另外,我不知道在哪里放置我的JSP。即使我有Jsp,我如何让它们像任何其他动态Web项目一样立即进行编译"

当我点击“运行” - >安装并不像mvn -PautoInstallPackage clean install那么好 但是当我这样做时,没有任何内容安装在Cq存储库中。请帮忙。

请参阅下面的目录结构以供参考

enter image description here enter image description here

编辑:我对maven项目做了一些事情并且自动完成功能开始工作但是它没有识别像SlingRepository等CQ类。任何输入?

2 个答案:

答案 0 :(得分:1)

我有一个类似的问题,eclipse没有自动完成,因为我们的视图模块(ui)没有包含在构建路径中。使用服务模块(bundle),可以轻松清除自动设置的文件夹,并在构建路径中添加正确的文件夹src / main / java-请参阅下面的注释。我们的项目导入方式不同,从cq-blueprints原型开始,因此每个Maven reactor模块都显示在Project Explorer中与父级相同的级别。我认为不重要。在我们的例子中,我们有一个命名问题,要求我们在.project文件中添加链接资源(下面的代码)这创建了一个资源,允许我们在路径中包含'components'链接资源。

<linkedResources>
       <link>
            <name>components/apps/our-app-name</name>
            <type>2</type>
            <locationURI>PROJECT_LOC/src/main/content/jcr_root/apps/our-app-name</locationURI>
       </link>

关于第二个问题。您可以通过设置配置文件来运行和部署来自eclipse的maven。从Maven菜单进入Run Configurations,使用autoInstallPackage配置文件创建配置,然后运行应该安装和部署的配置。

对于JSP,您可以尝试使用jspc maven插件。但是没有必要自动完成。确保cq taglibs和global.jsp的路径正确...

<%@ taglib prefix="cq" uri="http://www.day.com/taglibs/cq/1.0" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling/1.0" %>
<%@include file="../../../../../libs/foundation/global.jsp"%>
<cq:defineObjects /> 

答案 1 :(得分:0)

只是信息::我这样做了。右键单击项目Transform to Faceted项目。 Java文件开始被识别为Java文件。我通过在.m2文件夹中的实际罐子上提供位置来解决eclipse中的错误,所以现在我有了自动完成功能

然而,我无法建立这个项目,因为有些罐子没有从repo.adobe.com下载。我不知道为什么。我在POM中添加了正确的依赖项。无论如何,这是一个不同的问题。我现在已经完成了我的汽车,这很好。