3 个版本 (重大更新)

0.3.0 2021 年 7 月 29 日
0.2.0 2020 年 10 月 25 日
0.1.0 2020 年 9 月 20 日

#2402 in 命令行工具

MIT/Apache

235KB
2.5K SLoC

je

Jcr Exchange

CI status badge Crates.io version Code coverage License

关于 | 安装 | 配置 | 许可 | 贡献

使用 🦀 构建

关于

一个小型工具,用于上传/下载到/从运行中的 AEM 实例。

它旨在用作 IntelliJ IDEA 的外部工具,以简化内容同步。

je 0.3.0
Jcr Exchange - easy download and upload files to and from JCR

USAGE:
    je [FLAGS] [OPTIONS] <SUBCOMMAND>

FLAGS:
    -d, --debug      If enabled, deployed to AEM packages are left intact (are not deleted) to allow investigation
    -h, --help       Prints help information
    -V, --version    Prints version information
    -v, --verbose    Enables logs: -v - enables INFO log level -vv - enables DEBUG log level

OPTIONS:
    -p, --profile <profile>    Profile selection

SUBCOMMANDS:
    get           Downloads content to local file system
    get-bundle    Downloads bundle (pack of crx paths) defined in config file
    help          Prints this message or the help of the given subcommand(s)
    init          Initializes configuration file
    put           Uploads content to AEM instance
    reinit        Rewrites the configuration file with newest version

安装

标准安装

  • 前往 发布 页面
  • 下载适用于您的操作系统的最新 je 存档
  • 解压它
  • je 可执行文件的路径添加到您的 PATH 变量中

Rust 程序员

安装

cargo install je

升级

cargo install --force je

配置

默认

配置文件不是必需的。如果没有它,je 将使用默认配置。但是,您仍然可以初始化配置并更改它。默认配置也是初始配置

❯ je init
❯ cat .je
ignore_properties = []

[[profile]]
name = "author"
addr = "https://127.0.0.1:4502"
user = "admin"
pass = "admin"

自定义

这是一个更复杂的配置,包括对其字段的描述

ignore_properties = [{ type = "contains", value = "jcr:createdBy" },
                     { type = "regex", value = '.*=\[]' }]

[[profile]]
name = "author"
addr = "https://127.0.0.1:4502"
user = "admin"
pass = "admin"

[[profile]]
name = "publish"
addr = "https://127.0.0.1:4503"
user = "admin"
pass = "admin"

[[bundle]]
name = "configs"
files = ["/apps/my-app/config", "/config/my-app"]

[[bundle]]
name = "dam"
paths = ["/content/dam/my-app/thumbnails", "/content/dam/my-app/files"]
  • ignore_properties - 告诉 je 在下载内容后应删除 .content.xml 的哪些属性;目前有两种忽略机制可用
    • contains - 在每一行上执行 line.contains(value)
    • regex - 在每一行上执行 regex.is_match(line),它使用 Perl 风格的正则表达式
  • 配置文件部分 - 您可以添加多个配置文件,每个配置文件都有设置
    • name - 配置文件名称,以后可以使用 --profile 选项指定哪个实例是目标;如果未指定,则使用配置中的第一个配置文件
    • addr - 实例的地址,如果域名不可用,包括端口
    • user - 用于认证 AEM 实例的用户
    • pass - 用于认证 AEM 实例的密码
  • 捆绑部分 - 您可以定义在一运行中同步的文件包
    • name - 捆绑的名称,以后可以使用 --bundle 选项来指定要同步的文件包
    • paths - 哪些文件路径是捆绑的一部分

⚠️ 如果您使用了较旧的 je 版本,则可以将配置文件转换为新的格式。详细信息如下。

详细信息`je reinit` 将改变
ignore_properties = ["jcr:created", "jcr:createdBy"]

# (...)

version = "0.3.0"

[[ignore_properties]]
type = "contains"
value = "jcr:created"

[[ignore_properties]]
type = "contains"
value = "jcr:createdBy"

# (...)

这相当于

version = "0.3.0"

ignore_properties = [{type = "contains", value = "jcr:created"},
                     {type = "contains", value = "jcr:createdBy"}]

# (...)

您可以使用这两种格式中的任何一种。区别是 这个问题 的结果。

IntelliJ 设置

添加 je 命令

  1. 转到 Settings -> Tools -> External Tools
  2. 使用 + 符号添加新的外部工具。
  3. 配置工具,如以下截图所示。

je get configuration

类似地添加和配置 je put 命令

je put configuration

注意
  • 如果您没有在 PATH 中安装 je,您可以在 Program 输入中设置完整路径
  • Arguments 输入
    • -vv - 设置详细程度,-vv 表示 DEBUG 日志级别,-v 表示 INFO 日志级别;这是可选的
    • --profile - 设置目标配置文件;如果没有提供,将使用配置中的第一个配置文件
    • -d - 设置调试模式,在此模式下上传到 AEM 的临时包不会被删除,以便在调试期间进行验证;这是可选的
    • 子命令(putget
    • $FilePath$ - IntelliJ 变量,在命令执行期间将被替换,其绝对路径指向执行命令的文件
  • Working directory 输入
    • 设置为 $ProjectFileDir$ 允许从项目根目录运行 je
    • 请注意,je 将尝试从设置的当前工作目录读取配置文件

配置快捷键

  1. 转到 Settings -> Keymap -> External Tools
  2. 找到之前添加的命令。
  3. 通过 Right Click -> Add Keyboard Shortcut 设置键盘映射

key mappings

许可证

此项目可在以下任一许可证下使用

由您选择。

贡献

除非您明确声明,否则任何有意提交以包含在您的工作中的贡献,根据 Apache-2.0 许可证定义,应以上述方式双重许可,不附加任何额外条款或条件。

请参阅CONTRIBUTING.md以获取如何为je做出贡献的提示。

依赖项

~12–27MB
~429K SLoC