gpt4 book ai didi

eclipse - 从AEM下载 bundle 时如何使用Eclipse中的 bundle

转载 作者:行者123 更新时间:2023-12-04 22:59:38 29 4
gpt4 key购买 nike

我从程序包管理器http://localhost:4502/crx/packmgr/index.jsp中从正在运行的AEM实例下载了一个zip文件。提取后的zip文件包含jcr_rootMETA-INF

我想在此zip文件之上构建一些功能。所以我想知道是否有一种方法可以在Eclipse中使用此文件?但是,此zip文件夹中没有pom.xml文件。因此,我不能只是将其导入Eclipse。我已经为Eclipse下载了AEM开发人员工具。

是否有可用的指南说明如何执行此操作?该zip文件包含一些Java文件,我想对这些Java文件进行更改,然后重新打包,重新部署,以便我可以测试所做的更改。

我尝试使用Adobe Brackets(具有AEM扩展名),但仅适用于JS或JSP更改,不适用于JAVA文件。

更新

@Gabriel发表评论后,这就是我对我需要如何走动的理解
我从软件包中下载了,我将下载到中,它是通过eclipse创建的新项目。

完成上述之后

这是我复制/粘贴所有内容后新的eclipse项目的外观

下载的软件包中filter.xml的内容

<?xml version="1.0" encoding="UTF-8"?>
<workspaceFilter version="1.0">
<filter root="/etc/designs/delta"/>
<filter root="/apps/delta"/>
<filter root="/content/delta"/>
<filter root="/content/dam/delta"/>
<filter root="/content/usergenerated/content/delta"/>
<filter root="/apps/foundation/components/parsys"/>
</workspaceFilter>

基于上述,我在以下位置更改了两个filter.xml
/myproj.ui.apps/src/main/content/META-INF/vault/filter.xml
<?xml version="1.0" encoding="UTF-8"?>
<workspaceFilter version="1.0">
<filter root="/apps/myproject">
<exclude pattern="/apps/myproject/install" />
</filter>
<filter root="/apps/foundation/components/parsys" />
<filter root="/etc/designs/delta"/>
</workspaceFilter>
/myproj.ui.content/src/main/content/META-INF/vault/filter.xml
<?xml version="1.0" encoding="UTF-8"?>
<workspaceFilter version="1.0">
<filter root="/content/myproject"/>
<filter root="/content/dam/myproject"/>
<filter root="/content/usergenerated/content/delta"/>
</workspaceFilter>

进行清理/发布似乎没有任何效果,因为在进行清理/发布后,我没有在CRX或localhost:4502/siteadmin中看到任何内容。因此,我尝试手动安装。

为此,我在myproj上做了Run as -> Maven Install(它构建了以下zip文件)
~/Documents/workspace/myproj $ tree | grep "zip"
│   ├── myproj.ui.apps-0.0.1-SNAPSHOT.zip
├── myproj.ui.content-0.0.1-SNAPSHOT.zip

当我将这两个文件上传并安装到CRX时,会看到以下内容:


但是,这似乎也没有任何效果,因为我在localhost:4502/siteadmin中看不到任何内容,并且当我访问localhost:4502/content/myproj时收到错误消息

``

顺便说一句,这是我在localhost:4502/siteadmin下看到的

更新2

再次完成所有工作后,我能够创建eclipse项目,并成功进行了清理/发布。但是,当我进行清理/发布时,对JAVA文件所做的更改不会反射(reflect)出来。

@加布里埃尔提到

PROJECT.core for Java bundles (these will become interesting as soon as you want to add Java code)



我已经有PROJECT.ui.apps的Java文件,如下图所示

如果我对此JAVA文件进行更改并清除/发布,则我的更改不会反射(reflect)在AEM中。为了更改和发布JAVA代码,还需要做其他事情吗?或如何更改JAVA文件并在AEM上进行测试?

最佳答案

您可以使用“新建项目”功能为您创建正确的结构:

  • 在Eclipse中执行文件> > 项目...
  • 选择 AEM > AEM示例多模块项目> 下一个
  • 选择最新的原型(prototype)版本
  • 输入名称组ID 人为标识> 下一个
  • 如果已存在,则添加到现有服务器中,然后选择位置,或者选择设置新服务器并填写所有字段> 完成
  • 等待Eclipse完成所有内容的设置

  • 现在,您已经为您创建了以下项目,这些项目可以健康地分离关注点:
  • PROJECT.ui.apps用于/apps/etc内容
  • PROJECT.ui.content,用于创作
  • /content
  • Java捆绑软件的PROJECT.core(一旦您要添加Java代码,这些将变得很有趣)
  • 集成测试的
  • PROJECT.it.launcherPROJECT.it.tests(只要您不运行任何集成测试,就可以忽略它们)

    首先,将PROJECT.ui.apps项目的内容替换为包的appsetc文件夹:
  • 项目浏览器面板中,展开PROJECT.ui.apps> src> main> content> jcr_root> apps
  • 右键单击apps文件夹,然后选择。在中显示>
  • 删除您现在应该看到的appsetc文件夹,并将您内容包
  • appsetc文件夹放在此处
  • 在Eclipse中,右键单击PROJECT.ui.apps项目,然后选择刷新

  • 然后对PROJECT.ui.content进行相同的操作,并将其content文件夹替换为您的软件包之一:
  • 项目浏览器面板中,展开PROJECT.ui.content> src> main> content> jcr_root> content
  • 右键单击较深的content文件夹,然后选择。在中显示>
  • 删除您现在应该看到的content文件夹,并将您内容包
  • content文件夹放在此处
  • 在Eclipse中,右键单击PROJECT.ui.content项目,然后选择刷新

  • 现在,您必须更新这两个项目的filter.xml文件以与您的内容包的内容相对应。
    为此,请在单独的文本/代码编辑器中打开内容包的META-INF/vault/filter.xml文件。

    这是filter.xml文件外观的一个示例:
    <?xml version="1.0" encoding="UTF-8"?>
    <workspaceFilter version="1.0">
    <filter root="/apps/foo"/>
    <filter root="/apps/foundation/components/bar"/>
    <filter root="/etc/designs/foo"/>
    <filter root="/content/foo"/>
    <filter root="/content/dam/foo"/>
    <filter root="/content/usergenerated/content/foo"/>
    </workspaceFilter>

    至于分成两个项目的软件包内容,您还必须将这些过滤规则分为两个,并相应地更新两个项目的filter.xml文件。
  • 在Eclipse中,打开PROJECT.ui.apps/src/main/content/META-INF/filter.xml
  • 用您的包规则(以<workspaceFilter>/apps开头的
  • 替换/etc元素的内容)
  • 然后打开PROJECT.ui.content/src/main/content/META-INF/filter.xml
  • 将规则替换为以/content开头的软件包中的规则

  • 根据上面的示例,这是filter.xmlPROJECT.ui.apps的外观:
    <?xml version="1.0" encoding="UTF-8"?>
    <workspaceFilter version="1.0">
    <filter root="/apps/foo"/>
    <filter root="/apps/foundation/components/bar"/>
    <filter root="/etc/designs/foo"/>
    </workspaceFilter>

    PROJECT.ui.content之一:
    <?xml version="1.0" encoding="UTF-8"?>
    <workspaceFilter version="1.0">
    <filter root="/content/foo"/>
    <filter root="/content/dam/foo"/>
    <filter root="/content/usergenerated/content/foo"/>
    </workspaceFilter>

    确保保存所有更改。现在,您应该完成操作,并且可以将新内容同步到您的AEM实例。
  • 服务器面板中,确保您的连接是[Started],如果没有启动,请确保它是
  • 单击清洁并发布图标(最后一个)

  • 完成后,您应该在您的实例上运行您的程序包,并在保存时将所有更改自动同步到该实例。

    如果您希望从项目中重新构建软件包,请执行以下操作:
  • 右键单击PROJECT.ui.appsPROJECT.ui.content,然后选择运行方式> Maven安装
  • 现在,您已经创建了一个target文件夹,其中包含您的包(称为PROJECT.ui.apps-0.0.1-SNAPSHOT.zip)。
  • 关于eclipse - 从AEM下载 bundle 时如何使用Eclipse中的 bundle ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29699726/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com