从 AEM 下载包后如何在 Eclipse 中使用它

2023-12-02

我从包管理器中从正在运行的 AEM 实例下载了一个 zip -http://localhost:4502/crx/packmgr/index.jsp。解压缩后的 zip 文件包含:jcr_root and META-INF.

我想在此 zip 文件之上构建一些功能。所以我想知道是否有办法在 eclipse 中使用这个文件?然而,没有pom.xml此 zip 文件夹中的文件。所以我不能直接将它导入到 Eclipse 中。我下载了适用于 Eclipse 的 AEM 开发人员工具。

有可用的指南解释如何执行此操作吗?该 zip 文件包含一些 Java 文件,我想对这些 Java 文件进行更改并重新打包、重新部署,以便我可以测试我的更改。

我尝试使用 Adob​​e Brackets(带有 AEM 扩展),但它仅适用于 JS 或 JSP 更改...不适用于 JAVA 文件。

Update

在@Gabriel 发表评论之后,这是我对我需要如何移动的理解from我下载的包to通过 eclipse 创建的新项目。

enter image description here

完成上述操作后

这是我复制/粘贴所有内容后新的 Eclipse 项目的样子

enter image description here

下载包中的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>

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

为此我做了Run as -> Maven Install在 myproj 上(构建以下 zip 文件)

~/Documents/workspace/myproj $ tree | grep "zip"
│       ├── myproj.ui.apps-0.0.1-SNAPSHOT.zip
        ├── myproj.ui.content-0.0.1-SNAPSHOT.zip

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

enter image description here enter image description here

但是,这似乎也没有任何效果,因为我没有看到任何内容localhost:4502/siteadmin当我访问时localhost:4502/content/myproj我收到一个错误

``

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

enter image description here

Update 2

再次完成所有操作后,我能够创建 eclipse 项目并成功清理/发布。但是,当我执行清理/发布时,对 JAVA 文件的更改不会得到反映。

@Gabriel 提到

用于 Java 包的 PROJECT.core(这些很快就会变得有趣 因为你想添加Java代码)

我已经有 java 文件了PROJECT.ui.apps如下图所示

enter image description here

如果我对此 JAVA 文件进行更改并清理/发布,我的更改不会反映在 AEM 中。是否还需要做其他事情才能更改和发布 JAVA 代码?或如何更改 JAVA 文件并在 AEM 上进行测试?


您可以使用“新建项目”功能来创建适合您的结构:

  • 在 Eclipse 中做File > New > 项目...
  • Choose AEM > AEM 示例多模块项目 > Next
  • 选择最新的Archetype版本
  • 输入Name, Group Id, and 工件 ID > Next
  • Either 添加到现有服务器如果已经有一个并选择Location,否则选择设置新服务器并填写所有字段>Finish
  • 等待 Eclipse 完成所有设置

您现在已经为您创建了以下项目,这将允许健康地分离关注点:

  • PROJECT.ui.apps for /apps and /etc content
  • PROJECT.ui.content for /content所创作的
  • PROJECT.core对于 Java 捆绑包(一旦您想要添加 Java 代码,这些就会变得有趣)
  • PROJECT.it.launcher and PROJECT.it.tests用于集成测试(只要不运行任何集成测试,您就可以忽略这些)

首先,替换你的内容PROJECT.ui.apps项目与apps and etc您的包的文件夹:

  • In the 项目浏览器面板,展开PROJECT.ui.apps > src > main > content > jcr_root > apps
  • 右键单击apps文件夹并选择Show In > 系统资源管理器
  • 删除apps and etc您现在应该看到的文件夹并将其放置在此处apps and etc您的内容包的文件夹
  • 在 Eclipse 中,右键单击PROJECT.ui.apps项目并选择Refresh

然后对PROJECT.ui.content并替换它的content包含您的软件包之一的文件夹:

  • In the 项目浏览器面板,展开PROJECT.ui.content > src > main > content > jcr_root > content
  • 右键单击更深的content文件夹并选择Show In > 系统资源管理器
  • 删除content您现在应该看到的文件夹并将其放置在此处content您的内容包的文件夹
  • 在 Eclipse 中,右键单击PROJECT.ui.content项目并选择Refresh

现在您必须更新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 and /etc
  • 然后打开PROJECT.ui.content/src/main/content/META-INF/filter.xml
  • 将规则替换为您的包中以以下开头的规则/content

基于上面的例子,这就是filter.xml of PROJECT.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>

确保Save你所有的改变。您现在应该已完成,并且可以将新内容同步到您的 AEM 实例。

  • In the Servers面板,确保您的连接是[Started],如果没有启动它
  • 单击清理和发布图标(最后一个)

完成后,您的包应该在实例上运行,并且在保存时,任何更改都会自动同步到实例。

如果您希望从项目中重新构建包:

  • 右键单击PROJECT.ui.apps or PROJECT.ui.content并选择Run As > Maven安装
  • 你现在有一个target已使用您的包创建的文件夹(例如称为PROJECT.ui.apps-0.0.1-SNAPSHOT.zip).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 AEM 下载包后如何在 Eclipse 中使用它 的相关文章

  • AAR 可以包含传递依赖吗? [复制]

    这个问题在这里已经有答案了 现在我有一个库项目 比如项目 Foo 它依赖于像 OkHttp 这样的库 现在 Foo 有一个 Maven 构建步骤 可以生成 AAR 并将其推送到公共位置 现在假设我有项目 B 我们将其称为 Bar Bar是一
  • 使用 Maven 插件测试工具测试 Mojos 的默认值和表达式:

    我在使用 Maven 插件测试工具 2 0 alpha1 时遇到问题 当我想测试 Mojo 时 参数的默认值和表达式不适用 我有以下参数 p The output file to write the settings to p parame
  • 是否可以对 JUnit 中的每个测试用例使用不同的 @Before @After?

    我是新来的Java JUnit并遇到了不同的Fixtures 我在网上搜索了很多 但没有得到答案 是否可以使用不同的 Before After对于不同的测试用例JUnit 例如 我有以下 TC 那么是否可以使用不同的 Before用于测试和
  • 从单个 Maven 项目创建多个可运行的 Jars(包含依赖项)[重复]

    这个问题在这里已经有答案了 我有一个 Maven 项目 它有多个主类 我想从这些项目中生成可运行的 Jars 包括所有依赖项 我目前有以下构建配置 使用 maven assemble
  • 如何管理 OSGi 构建依赖项?

    我们已将 OSGi 运行时 Equinox 嵌入到自定义客户端 服务器应用程序中 以促进插件开发 到目前为止一切进展顺利 由于 Eclipse 内置的清单编辑器 依赖项管理和导出向导 我们一直使用 Eclipse 来构建插件 使用 Ecli
  • Gradle 构建错误

    由于此错误 我的构建失败 评估项目 DBSupport 时出现问题 gt 找不到 参数 project Core Platform 上提供的方法providedCompile 项目 DBSupport 知道这意味着什么吗 descripti
  • 透视切换面板在 Eclipse 中消失

    Eclipse 崩溃后 小透视切换窗格从 Eclipse 窗口的右上角消失了 我下载了最新版本并尝试打开它 使用相同的工作区 但按钮仍然消失 这是一个屏幕截图 并放大 有任何想法吗 我仍然可以通过选择 窗口 gt 打开透视图 来切换透视图
  • 如何使用maven创建基于spring的可执行jar?

    我有一个基于 Maven 的 Spring WS 客户端项目 我想将其打包为单个 jar 在eclipse中 一切运行正常 当我尝试将其打包为可执行 jar 时 我收到 ClassNotFound 异常 因为 Spring jar 未包含在
  • 如何在多模块 spring-boot maven 项目中构建特定模块

    我创建了一个多模块 Spring Boot Maven 项目 但是当我使用 mvn clean package pl module2 spring boot run 在控制台中 它告诉我 module1 中的某些类找不到 但我已经在 mod
  • 在 Eclipse 中的调试会话期间记录所有跟踪信息

    我想记录调试会话的每个步骤的所有调试信息 以便稍后处理所有这些数据 例如调用的方法的名称 参数值 所有变量值等 有没有任何选项可以实现此目的 我应该在哪里更改代码才能实现此目的 一件重要的事情 它不是一个 java 程序 这是一个使用 ac
  • Maven Artifact Resolver 在我的机器上的 Maven Central 上看不到最新插件

    我在 Windows 10 上使用 Maven 3 9 1 我还使用 Eclipse EE 2023 03 其中包含 m2e Eclipse 对 Maven 的支持 我正在使用 POM 检查插件版本更新版本 Maven 插件 https w
  • 如何从 JUnit 测试读取 Maven 属性?

    我正在使用 Maven 3 0 3 和 JUnit 4 8 1 在我的 JUnit 测试中 如何读取 Maven pom xml 文件中定义的 project artifactId 在我的 pom 中 我有
  • 使用“mvncompilejib:build”推送到 Docker 注册表失败

    我正在尝试使用以下命令构建并将我的 docker 映像部署到私有注册表谷歌联合投资银行Maven 插件 但是 它因访问私有注册表时出现问题而失败 我已经安装了Docker 桌面 v19 03 1 on my Windows 10机器 接下来
  • 使用 Exec Maven 插件分叉 Java,而不使用“exec”目标

    来自文档 https www mojohaus org exec maven plugin exec exec在单独的进程中执行程序和Java程序 exec java在同一虚拟机中执行 Java 程序 我想 fork 一个 java 程序
  • GAE 无法部署到 App Engine

    我正在尝试从 Eclipse 发布 Web 应用程序 我在 GAE 上创建了四个项目 可以通过登录我的帐户并查看控制台来查看它们 我已经改变了appengine web xml到项目的应用程序 ID 如果我将其更改为 GAE 上第一个创建的
  • Eclipse 在处理 xml(传入或传出)时挂起。此时CPU+磁盘尖峰

    我每天必须处理许多 XML 这极大地打断了我的工作流程 我尝试降级到 Indigo 但所有附加组件都被删除 打开xml时出现问题 切换到 xml 切换出一个 xml 甚至切换到另一个 xml 到底发生了什么事情让 XML 如此烦人 我可以禁
  • MiniDFSCluster UnsatisfiedLinkError org.apache.hadoop.io.nativeio.NativeIO$Windows.access0

    做时 new MiniDFSCluster Builder config build 我得到这个异常 java lang UnsatisfiedLinkError org apache hadoop io nativeio NativeIO
  • Maven:从构建中排除测试

    我在项目的 src test java 文件夹中有一些类用作测试 当我使用标准 Maven 编译插件运行 Maven 时 这些项目被编译成 class 文件 并包含在打包编译代码的 jar 中 在运行 Maven 和构建我的版本之前 我已经
  • Maven 版本插件跳过更新检查

    当我尝试使用versions use releases我的发布存储库被标记为 已禁用 这意味着快照依赖项不会解析为发布 我不明白为什么存储库被认为是禁用的 以下是构建的简短调试输出 DEBUG f remoteArtifactReposit
  • Eclipse 中选定单词的括号

    几天前 我觉得这个问题很愚蠢 所以不要将其发布在这里 但即使在搜索了很多之后 我也没有找到合适的解决方案 对于那些使用过的人TextEdit 在 Mac 上 他们会完全知道我在说什么 在编码时 我只想在单词或一行上加上引号或括号 为此 我必

随机推荐

  • 如何从 iPhone 中的 Web 服务获取数据?

    我必须开发一个应用程序 其中包括以下内容 gt 通过 iPhone 向 Web 服务发出请求 gt 从网络服务获取数据 我从未使用过 Web 服务来开发 iPhone 应用程序 但我知道什么是网络服务 The example of web
  • Git 正在转向新的哈希算法 SHA-256,但为什么 git 社区选择 SHA-256

    我刚刚从这件事中学到了HN postgit 正在转向新的哈希算法 从SHA 1 to SHA 256 我想知道是什么让SHA 256最适合 git 的用例 是否有任何 许多强有力的技术原因或者是否有可能SHA 256人气是一个强大的因素吗
  • Android Studio:无法完成 gradle 执行,原因为空

    当我尝试运行 Android 模拟器时 出现以下错误屏幕 当我导出 apk 时也会发生同样的情况 当我转到保存 apk 的目录时 apk 文件不存在 谢谢你 克里斯托夫 我遇到了同样的问题 通过执行以下步骤可以解决此问题 Go to 文件
  • 如何获取 Chrome 扩展程序子文件夹中的文件名列表?

    我想知道是否可以获取 Chrome 扩展程序的子文件夹中所有文件的文件名列表 谢谢你 Use the chrome runtime getPackageDirectoryEntry方法得到一个DirectoryEntry对于 Chrome
  • 将自定义角色分配给 Azure Active Directory 系统托管标识

    为了在 API 之间建立 Azure AD 系统托管标识 我在应用程序清单中为目标 API 定义了一个自定义角色 appRoles allowedMemberTypes Application description Allow the a
  • 在 C# 中测试/注入私有字段的良好做法是什么

    如果这是重复的 我很抱歉 我被赋予了为该方法添加一些覆盖范围的任务 并被告知要模拟私有的List
  • PHP 中的数字格式

    我想将带小数位的数字格式化为不带小数位的格式 例如 146 5 到 146500000 我如何在 PHP 中实现这一点 谢谢 乘以100000 没那么容易
  • 在 Excel 中导入 CSV 美国格式的数字并进行本地化?

    我有一个包含以下值的 csv 文件 1488201602 653 8 304700E 04 3 079498E 03 1488201603 107 8 677357E 04 2 856719E 03 1488201821 012 7 071
  • 另一个线性渐变内的线性渐变

    我正在尝试在另一个线性渐变中创建线性渐变 这可能吗 下面的例子 background linear gradient to right color1 50 color2 0 颜色 1 是 background linear gradient
  • ARM Aarch64 中的 PUSH {lr} 和 POP {lr}

    等效指令是什么PUSH lr and POP lr 在ARM Aarch64指令集中 Is STR X30 SP 8 正确的 您能解释一下维护堆栈对齐的概念吗 我对 ARMv8 比较陌生 所以请原谅 如果您要求 C 编译器从源代码生成汇编语
  • WIX 自定义操作:使用 dllimport

    我有一个 WiX 安装程序和自定义操作项目 我添加了 C 库作为自定义操作项目的参考 此 C dll 使用 DllImport 到一个 C dll 安装时收到错误 无法加载 DLLmycpp dll 未找到指定的模块 我添加了mycpp d
  • 为什么Fortran可以分配这么大的数组?

    我编写了一段科学代码 像往常一样 这归结为计算代数特征值方程中的系数 计算这些系数需要对多维数组进行积分 这会迅速大幅增加内存使用量 一旦计算出矩阵系数 就可以释放原始的预积分多维数组 并由智能求解器接管 因此内存使用不再是大问题 正如您所
  • 指定绘图上多条线的颜色[重复]

    这个问题在这里已经有答案了 Pandas 数据框分组图 我有一个与上述问题类似的数据框 但它有大约 8 个股票代码 我定义了一个名为 颜色 的颜色列表 与股票代码相对应 但是当我这样做时 df groupby ticker adj clos
  • 使用map-reduce构建分布式KD树

    我正在尝试使用map reduce 构建分布式KD 树 分布式KD树的描述可以在这里找到Dkd Tree I have a feature vector of images having dimension 20 I have to bui
  • 如何在powershell中的正则表达式中插入变量

    我试图查看文件中是否存在某些输入的条目 因此我使用正则表达式来查询每一行 cat file where match script fileName 其中 fileName 是其他地方定义的一些输入 如何更改正则表达式以插入变量而不是匹配 f
  • 空手道:[主要] INFO com.intuit.karate - karate.env 系统属性为:null [重复]

    这个问题在这里已经有答案了 在尝试使用生成的令牌执行下一个场景时 在令牌身份验证流程之后出现错误 主要 INFO com intuit karate 空手道系统属性为 null 我使用了以下代码 特征文件 Feature Login Tok
  • Python项目结构和相关导入

    我是Python新手 我在谷歌上搜索了很多 并阅读了一些有关相对导入等的文章 尽管事实上我无法让它工作 请考虑我的以下项目结构 Project docs log prev src a py tests tests1 b py tests2
  • 直接从无头图像字节数组创建缩略图

    我的应用程序一次显示大量图像缩略图 目前 我将所有全尺寸图像保留在内存中 并简单地在 UI 中缩放图像以创建缩略图 但是 我宁愿只在内存中保留小缩略图 并且仅在必要时加载全尺寸图像 我认为这很容易 但与仅在 UI 中缩放全尺寸图像相比 我生
  • 您的凭据不允许访问此资源 Twitter API 错误

    我正在研究 Twitter api 一些 api 得到了响应 但statuses home timeline jsonapi 和其他 api 没有得到响应 出现错误 errors code 220 message Your credenti
  • 从 AEM 下载包后如何在 Eclipse 中使用它

    我从包管理器中从正在运行的 AEM 实例下载了一个 zip http localhost 4502 crx packmgr index jsp 解压缩后的 zip 文件包含 jcr root and META INF 我想在此 zip 文件