如何使用VLT工具 how-to-use-the-vlt-tool

Jackrabbit FileVault工具(VLT)是由Apache Foundation所開發的工具,可將Jackrabbit/AEM執行個體的內容對應至您的檔案系統。 VLT工具具有類似原始檔控制系統使用者端(例如Subversion (SVN)使用者端)的功能,可提供一般簽入、簽出和管理作業,以及彈性表示專案內容的組態選項。

從命令列執行VLT工具。 本檔案說明如何使用工具,包括如何開始使用及取得說明,以及所有命令和可用選項的清單。

概念和架構 concepts-and-architecture

請參閱官方Apache Jackrabbit Filevault檔案中的Filevault概述Vault FS頁面,瞭解Filevault工具的概念和結構的完整概述。

VLT快速入門 getting-started-with-vlt

若要開始使用VLT,您必須執行下列動作:

  1. 安裝VLT、更新環境變數,以及更新全域忽略的subversion檔案。
  2. 設定AEM存放庫(如果尚未這麼做的話)。
  3. 檢視AEM存放庫。
  4. 與存放庫同步。
  5. 測試同步是否有效。

安裝VLT工具 installing-the-vlt-tool

若要使用VLT工具,您必須先安裝它。 預設不會安裝,因為它是附加工具。 此外,您需要設定系統的環境變數。

  1. Maven成品存放庫下載FileVault封存檔案。

    note note
    NOTE
    VLT工具的來源是可在GitHub上取得。

    1. 提取封存。

  2. <archive-dir>/vault-cli-<version>/bin新增至您的環境PATH,以便視需要存取命令檔vltvlt.bat。 例如:

    <aem-installation-dir>/crx-quickstart/opt/helpers/vault-cli-3.1.16/bin>

  3. 開啟命令列shell並執行vlt --help。 確認輸出與下列說明畫面類似:

    code language-shell
    vlt --help
    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Jackrabbit FileVault [version 3.1.16] Copyright 2013 by Apache Software Foundation. See LICENSE.txt for more information.
    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Usage:
      vlt [options] <command> [arg1 [arg2 [arg3] ..]]
    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    Global options:
    
      -Xjcrlog <arg>           Extended JcrLog options (omit argument for help)
      -Xdavex <arg>            Extended JCR remoting options (omit argument for help)
      --credentials <arg>      The default credentials to use
      --update-credentials     if present the credentials-to-host list is updated in the ~/.vault/auth.xml
      --config <arg>           The JcrFs config to use
      -v (--verbose)           verbose output
      -q (--quiet)             print as little as possible
      --version                print the version information and exit
      --log-level <level>      the log4j log level
      -h (--help) <command>    print this help
    

安裝之後,您需要更新全域忽略的subversion檔案。 編輯您的svn設定並新增下列專案:

[miscellany]
### Set global-ignores to a set of whitespace-delimited globs
### which Subversion will ignore in its 'status' output, and
### while importing or adding files and directories.
global-ignores = .vlt

設定行尾字元 configuring-the-end-of-line-character

VLT會根據下列規則自動處理行尾(EOF):

  • 在Windows上簽出的檔案行以CRLF結尾
  • 在Linux/Unix上簽出的檔案行以LF結尾
  • 提交到存放庫的檔案行以LF結尾

為了保證VLT和SVN組態相符,您應該將svn:eol-style屬性設定為native,以作為儲存於存放庫中的檔案副檔名。 編輯您的svn設定並新增下列專案:

[auto-props]
*.css = svn:eol-style=native
*.cnd = svn:eol-style=native
*.java = svn:eol-style=native
*.js = svn:eol-style=native
*.json = svn:eol-style=native
*.xjson = svn:eol-style=native
*.jsp = svn:eol-style=native
*.txt = svn:eol-style=native
*.html = svn:eol-style=native
*.xml = svn:eol-style=native
*.properties = svn:eol-style=native

出庫存放庫 checking-out-the-repository

使用原始檔控制系統出庫存放庫。 例如,在svn中,輸入以下內容(將URI和路徑替換為存放庫):

svn co https://svn.server.com/repos/myproject

與存放庫同步 synchronizing-with-the-repository

您需要將filevault與存放庫同步。 若要這麼做:

  1. 在命令列中,瀏覽至content/jcr_root

  2. 輸入下列專案來檢查存放庫(將您的連線埠號碼取代為​ 4502 ​和您的管理員密碼):

    code language-shell
    vlt --credentials admin:admin co --force http://localhost:4502/crx
    
    note note
    NOTE
    憑證只需在初次結帳時指定一次。 然後,它們會儲存在.vault/auth.xml內的主目錄中。

測試同步是否有效 testing-whether-the-synchronization-worked

簽出存放庫並同步化後,您應該進行測試以確定所有專案皆正常運作。 要執行此操作,一個簡單的方法是編輯​ .jsp ​檔案,並檢視在提交變更後是否反映您的變更。

若要測試同步化:

  1. 導覽至 .../jcr_content/libs/foundation/components/text
  2. text.jsp中編輯某些專案。
  3. 透過輸入vlt st檢視修改過的檔案
  4. 透過輸入vlt diff text.jsp檢視變更
  5. 認可變更: vlt ci test.jsp
  6. 重新載入包含文字元件的頁面,並檢視變更是否存在。

使用VLT工具取得協助 getting-help-with-the-vlt-tool

安裝VLT工具之後,您可以從命令列存取其「說明」檔案:

vlt --help
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Jackrabbit FileVault [version 3.1.16] Copyright 2013 by Apache Software Foundation. See LICENSE.txt for more information.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Usage:
  vlt [options] <command> [arg1 [arg2 [arg3] ..]]
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Global options:
  -Xjcrlog <arg>           Extended JcrLog options (omit argument for help)
  -Xdavex <arg>            Extended JCR remoting options (omit argument for help)
  --credentials <arg>      The default credentials to use
  --update-credentials     if present the credentials-to-host list is updated in the ~/.vault/auth.xml
  --config <arg>           The JcrFs config to use
  -v (--verbose)           verbose output
  -q (--quiet)             print as little as possible
  --version                print the version information and exit
  --log-level <level>      the log4j log level
  -h (--help) <command>    print this help
Commands:
  export                   Export the Vault filesystem
  import                   Import a Vault filesystem
  checkout (co)            Checkout a Vault file system
  status (st)              Print the status of working copy files and directories.
  update (up)              Bring changes from the repository into the working copy.
  info                     Displays information about a local file.
  commit (ci)              Send changes from your working copy to the repository.
  revert (rev)             Restore pristine working copy file (undo most local edits).
  resolved (res)           Remove 'conflicted' state on working copy files or directories.
  propget (pg)             Print the value of a property on files or directories.
  proplist (pl)            Print the properties on files or directories.
  propset (ps)             Set the value of a property on files or directories.
  add                      Put files and directories under version control.
  delete (del,rm)          Remove files and directories from version control.
  diff (di)                Display the differences between two paths.
  rcp                      Remote copy of repository content.
  sync                     Control vault sync service
  console                  Run an interactive console
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

如需特定指令的說明,請輸入help指令,然後輸入指令的名稱。 例如:

vlt --help export
Usage:
 export -v|-t <arg>|-p <uri> <jcr-path> <local-path>

Description:
  Export the Vault filesystem mounted at <uri> to the local filesystem at <local-path>. An optional <jcr-path> can be specified to export just a sub tree.
  Example:
    vlt export http://localhost:4502/crx /apps/geometrixx myproject

Options:
  -v (--verbose)          verbose output
  -t (--type) <arg>       specifies the export type. either 'platform' or 'jar'.
  -p (--prune-missing)    specifies if missing local files should be deleted.
  <uri>                   mountpoint uri
  <jcr-path>              the jcr path
  <local-path>            the local path

在VLT中執行的常見工作 common-tasks-performed-in-vlt

以下是在VLT中執行的一些常見工作。 如需每個命令的詳細資訊,請參閱個別命令

出庫子樹狀結構 checking-out-a-subtree

如果您只想出庫存放庫的子樹狀結構,例如/apps/geometrixx,您可以輸入下列內容來執行此操作:

vlt co http://localhost:4502/crx/-/jcr:root/apps/geometrixx geo

執行此動作會建立具有META-INFjcr_root目錄的新匯出根geo,並將所有低於/apps/geometrixx的檔案放在geo/jcr_root中。

執行篩選的簽出 performing-a-filtered-checkout

如果您有現有的工作區篩選器,且想要將它用於簽出,您可以先建立META-INF/vault目錄並將篩選器放置在那裡,或在命令列上指定,如下所示:

$ vlt co --filter filter.xml http://localhost:4502/crx/-/jcr:root geo

範例篩選條件:

<?xml version="1.0" encoding="UTF-8"?>
<workspaceFilter version="1.0">
    <filter root="/etc/designs/geometrixx" />
    <filter root="/apps/geometrixx"/>
</workspaceFilter>

使用匯入/匯出而非.vlt控制項 using-import-export-instead-of-vlt-control

您可以在不使用控制檔的情況下,在JCR存放庫和本機檔案系統之間匯入和匯出內容。

若要在不使用.vlt控制項的情況下匯入和匯出內容:

  1. 最初設定存放庫:

    code language-shell
    $ cd /projects
    $ svn mkdir https://svn.server.com/repos/myproject
    $ svn co https://svn.server.com/repos/myproject
    $ vlt export -v http://localhost:4502/crx /apps/geometrixx geometrixx
    $ cd geometrixx/
    $ svn add META-INF/ jcr_root/
    $ svn ci
    
  2. 變更遠端複製並更新JCR:

    code language-shell
    $ cd /projects/geometrixx
    $ vlt -v import http://localhost:4502/crx . /
    
  3. 變更遠端復本並更新檔案伺服器:

    code language-shell
    $ cd /projects/geometrixx
    $ vlt export -v http://localhost:4502/crx /apps/geometrixx .
    $ svn st
    M      META-INF/vault/properties.xml
    M      jcr_root/apps/geometrixx/components/contentpage/.content.xml
    $ svn ci
    

使用VLT using-vlt

若要在VLT中發出指令,請在指令行中輸入下列內容:

vlt [options] <command> [arg1 [arg2 [arg3] ..]]

以下各節將詳細介紹選項和指令。

VLT全域選項 vlt-global-options

以下是VLT選項的清單,這些選項可用於所有指令。 如需其他可用選項的資訊,請參閱個別命令。

選項
說明
-Xjcrlog <arg>
延伸的JcrLog選項
-Xdavex <arg>
延伸的JCR遠端選項
--credentials <arg>
要使用的預設認證
--config <arg>
要使用的JcrFs設定
-v (--verbose)
詳細輸出
-q (--quiet)
儘可能減少列印
--version
列印版本資訊並結束VLT
--log-level <level>
指示記錄層級,例如log4j記錄層級。
-h (--help) <command>
列印該特定命令的說明

VLT指令 vlt-commands

下表說明所有可用的VLT指令。 如需語法、可用選項和範例的詳細資訊,請參閱個別命令。

命令
縮寫命令
說明
export
從JCR儲存庫(Vault檔案系統)匯出至本機檔案系統,而不使用控制檔。
import
將本機檔案系統匯入至JCR存放庫(儲存庫檔案系統)。
checkout
co
出庫儲存庫檔案系統。 將此用於本機檔案系統的初始JCR存放庫。 (注意:請先取出subversion中的存放庫。)
analyze
分析封裝。
status
st
列印工作復本檔案和目錄的狀態。
update
up
將變更從存放庫匯入到工作復本。
info
顯示本機檔案的相關資訊。
commit
ci
將工作復本中的變更傳送至存放庫。
revert
rev
將工作復本檔案還原至原始狀態,並復原大部分的本機編輯。
resolved
res
移除工作復本檔案或目錄上的衝突狀態。
propget
pg
列印檔案或目錄上的屬性值。
proplist
pl
列印檔案或目錄上的內容。
propset
ps
設定檔案或目錄上的屬性值。
add
將檔案和目錄置於版本控制之下。
delete
delrm
從版本控制中移除檔案和目錄。
diff
di
顯示兩個路徑之間的差異。
console
執行互動式主控台。
rcp
將節點樹從一個遠端存放庫複製到另一個存放庫。
sync
可讓您控制儲存庫同步服務。

匯出 export

將掛載於<uri>的Vault檔案系統匯出至<local-path>的本機檔案系統。 可以指定選用的<jcr-path>以僅匯出子樹狀結構。

語法 syntax

export -v|-t <arg>|-p <uri> <jcr-path> <local-path>

選項 options

-v (--verbose)
詳細輸出
-t (--type) <arg>
指定匯出型別(platform或jar)。
-p (--prune-missing)
指定是否應該刪除遺失的本機檔案
<uri>
掛接點uri
<jcrPath>
JCR路徑
<localPath>
本機路徑

範例 examples

vlt export http://localhost:4502/crx /apps/geometrixx myproject

匯入 import

將本機檔案系統(從<local-path>開始)匯入至<uri>的儲存庫檔案系統。 您可以指定<jcr-path>作為匯入根目錄。 若指定--sync,匯入的檔案會自動置於儲存庫控制之下。

語法 syntax-1

import -v|-s <uri> <local-path> <jcr-path>

選項 options-1

-v (--verbose)
詳細輸出
-s (-- sync)
將本機檔案置於儲存庫控制之下
<uri>
掛接點uri
<jcrPath>
JCR路徑
<localPath>
本機路徑

範例 examples-1

vlt import http://localhost:4502/crx . /

簽出(co) checkout-co

從<uri>開始從JCR存放庫到本機檔案系統的初始出庫到<local-path>的本機檔案系統。 您也可以新增<jcrPath>引數來簽出遠端樹狀結構的子目錄。 可指定複製到META-INF目錄中的Workspace篩選器。

語法 syntax-2

checkout --force|-v|-q|-f <file> <uri> <jcrPath> <localPath>

選項 options-2

--force
強制籤出以覆寫已存在的本機檔案
-v (--verbose)
詳細輸出
-q (--quiet)
儘可能減少列印次數
-f (--filter) <file>
如果未定義任何專案,則指定自動篩選
<uri>
掛接點uri
<jcrPath>
(選擇性)遠端路徑
<localPath>
(選擇性)本機路徑

範例 examples-2

使用JCR遠端:

vlt --credentials admin:admin co http://localhost:8080/crx/server/crx.default/jcr_root/

使用預設工作區:

vlt --credentials admin:admin co http://localhost:8080/crx/server/-/jcr_root/

如果URI不完整,則會展開:

vlt --credentials admin:admin co http://localhost:8080/crx

分析 analyze

分析封裝。

語法 syntax-3

analyze -l <format>|-v|-q <localPaths1> [<localPaths2> ...]

選項 options-3

-l (--linkFormat) <format>
hotfix連結的printf格式(名稱、識別碼),例如`[CQ520_HF_%s
-v (--verbose)
詳細輸出
-q (--quiet)
儘可能減少列印次數
<localPaths> [<localPaths> ...]
本機路徑

狀態 status

列印工作復本檔案和目錄的狀態。

如果指定--show-update,則會針對遠端版本檢查每個檔案。 第二個字母接著會指定更新作業要執行的動作。

語法 syntax-4

status -v|-q|-u|-N <file1> [<file2> ...]

選項 options-4

-v (--verbose)
詳細輸出
-q (--quiet)
儘可能減少列印次數
-u (--show-update)
顯示更新資訊
-N (--non-recursive)
在單一目錄中運作
<file> [<file> ...]
顯示狀態的檔案或目錄

更新 update

將變更從存放庫複製到工作復本。

語法 syntax-5

update -v|-q|--force|-N <file1> [<file2> ...]

選項 options-5

-v (--verbose)
詳細輸出
-q (--quiet)
儘可能減少列印次數
--force
強制覆寫本機檔案
-N (--non-recursive)
在單一目錄中運作
<file> [<file> ...]
要更新的檔案或目錄

資訊 info

顯示本機檔案的相關資訊。

語法 syntax-6

info -v|-q|-R <file1> [<file2> ...]

選項 options-6

-v (--verbose)
詳細輸出
-q (--quiet)
儘可能減少列印次數
-R (--recursive)
操作遞回
<file> [<file> ...]
要顯示資訊的檔案或目錄

提交 commit

將工作復本中的變更傳送至存放庫。

語法 syntax-7

commit -v|-q|--force|-N <file1> [<file2> ...]

選項 options-7

-v (--verbose)
詳細輸出
-q (--quiet)
儘可能減少列印次數
--force
即使遠端副本已修改,仍強制提交
-N (--non-recursive)
在單一目錄中運作
<file> [<file> ...]
要提交的檔案或目錄

還原 revert

將工作復本檔案還原為原始狀態,並復原大部分的本機編輯。

語法 syntax-8

revert -q|-R <file1> [<file2> ...]

選項 options-8

-q (--quiet)
儘可能減少列印次數
-R (--recursive)
遞減遞減
<file> [<file> ...]
要提交的檔案或目錄

已解決 resolved

移除工作復本檔案或目錄上的​ 衝突 ​狀態。

NOTE
這個指令不會從語義上解決衝突或移除衝突標籤;它只會移除與衝突相關的成品檔案,並允許PATH再次認可。

語法 syntax-9

resolved -q|-R|--force <file1> [<file2> ...]

選項 options-9

-q (--quiet)
儘可能減少列印次數
-R (--recursive)
遞減遞減
--force
即使有衝突標籤也會解析
<file> [<file> ...]
要解析的檔案或目錄

Propget propget

列印檔案或目錄上的屬性值。

語法 syntax-10

propget -q|-R <propname> <file1> [<file2> ...]

選項 options-10

-q (--quiet)
儘可能減少列印次數
-R (--recursive)
遞減遞減
<propname>
屬性名稱
<file> [<file> ...]
要從中取得屬性的檔案或目錄

Proplist proplist

列印檔案或目錄上的內容。

語法 syntax-11

proplist -q|-R <file1> [<file2> ...]

選項 options-11

-q (--quiet)
儘可能減少列印次數
-R (--recursive)
遞減遞減
<file> [<file> ...]
要列出其屬性的檔案或目錄

Propset propset

設定檔案或目錄上的屬性值。

NOTE
VLT可辨識下列特殊版本化屬性:
vlt:mime-type
檔案的mimetype。 用於決定是否合併檔案。 以'text/'開頭的mimetype (或不存在mimetype)會被視為文字。 任何其他專案都會視為二進位。

語法 syntax-12

propset -q|-R <propname> <propval> <file1> [<file2> ...]

選項 options-12

-q (--quiet)
儘可能減少列印次數
-R (--recursive)
遞減遞減
<propname>
屬性名稱
<propval>
屬性值
<file> [<file> ...]
要設定屬性的檔案或目錄

新增 add

將檔案和目錄置於版本控制之下,並排程將其加入存放庫。 它們將在下次認可時新增。

語法 syntax-13

add -v|-q|-N|--force <file1> [<file2> ...]

選項 options-13

-v (--verbose)
詳細輸出
-q (--quiet)
儘可能減少列印次數
-N (--non-recursive)
在單一目錄中運作
--force
強制執行作業
<file> [<file> ...]
要新增的本機檔案或目錄

刪除 delete

從版本控制中移除檔案和目錄。

語法 syntax-14

delete -v|-q|--force <file1> [<file2> ...]

選項 options-14

-v (--verbose)
詳細輸出
-q (--quiet)
儘可能減少列印次數
--force
強制執行作業
<file> [<file> ...]
要刪除的本機檔案或目錄

差異 diff

顯示兩個路徑之間的差異。

語法 syntax-15

diff -N <file1> [<file2> ...]

選項 options-15

-N (--non-recursive)
在單一目錄中運作
<file> [<file> ...]
要顯示差異的檔案或目錄

主控台 console

執行互動式主控台。

語法 syntax-16

console -F <file>

選項 options-16

-F (--console-settings) <file>
指定主控台設定檔。 預設檔案為console.properties。

Rcp rcp

將節點樹從一個遠端存放庫複製到另一個存放庫。 <src>指向來源節點,<dst>指定父節點必須存在的目的地路徑。 Rcp會透過串流資料來處理節點。

語法 syntax-17

rcp -q|-r|-b <size>|-t <seconds>|-u|-n|-e <arg1> [<arg2> ...] <src> <dst>

選項 options-17

-q (--quiet)
儘可能減少列印次數。
-r (--recursive)
遞減遞減。
-b (--batchSize) <size>
中繼儲存前要處理的節點數目。
-t (--throttle) <seconds>
中繼儲存後等待的秒數。
-u (--update)
覆寫/刪除現有節點。
-n (--newer)
遵守lastModified屬性以進行更新。
-e (--exclude) <arg> [<arg> ...]
排除的來源路徑的Regexp。
<src>
來源樹狀結構的存放庫位址。
<dst>
目的地節點的存放庫位址。

範例 examples-3

vlt rcp http://localhost:4502/crx/-/jcr:root/content  https://admin:admin@localhost:4503/crx/-/jcr:root/content_copy
NOTE
--exclude選項後面必須接著另一個選項,在<src><dst>引數之前。 例如:
vlt rcp -e ".*\.txt" -r

同步 sync

可讓您控制儲存庫同步服務。 這個命令會嘗試將目前的工作目錄置於同步控制之下,而不使用任何引數。 如果在vlt簽出內執行,它會使用個別篩選器和主機來設定同步。 如果在vlt出庫之外執行,則只有在目錄為空時,它才會註冊目前的資料夾以進行同步處理。

語法 syntax-18

sync -v|--force|-u <uri> <command> <localPath>

選項 options-18

-v (--verbose)
詳細輸出。
--force
強制執行某些指令。
-u (--uri) <uri>
指定同步處理主機的URI。
<command>
同步命令以執行。
<localPath>
要同步的本機資料夾。

狀態代碼 status-codes

VLT使用的狀態代碼為:

  • ' '沒有修改
  • 'A'已新增
  • 'C'衝突
  • 'D'已刪除
  • 已忽略'I'
  • 'M'已修改
  • 已取代'R'
  • '?' 專案不受版本控制
  • '!' 專案遺失(由非svn命令移除)或不完整
  • '~'版本化專案被其他型別的專案所阻擋

設定FileVault同步 setting-up-filevault-sync

儲存庫同步服務可用來將存放庫內容與本機檔案系統表示同步,反之亦然。 這是透過安裝OSGi服務來達成,該服務將監聽存放庫變更並定期掃描檔案系統內容。 它使用與儲存庫相同的序列化格式,將存放庫內容對應到磁碟。

NOTE
儲存庫同步服務是一種開發工具,強烈建議不要將其用於生產系統。 此外,此服務只能與本機檔案系統同步,無法用於遠端開發。

使用vlt安裝服務 installing-the-service-using-vlt

vlt sync install命令可用來自動安裝儲存庫同步服務套件組合與組態。

組合安裝在/libs/crx/vault/install下方,且在/libs/crx/vault/com.day.jcr.sync.impl.VaultSyncServiceImpl建立設定節點。 最初啟用服務,但未設定同步處理根目錄。

下列範例會將同步服務安裝至特定URI可存取的CRX執行個體。

$ vlt --credentials admin:admin sync --uri http://localhost:4502/crx install

顯示服務狀態 displaying-the-service-status

status命令可用來顯示有關執行中同步處理服務的資訊。"

$ vlt sync status --uri http://localhost:4502/crx
Connecting via JCR remoting to http://localhost:4502/crx/server
Listing sync status for http://localhost:4502/crx/server/-/jcr:root
- Sync service is enabled.
- No sync directories configured.
NOTE
status命令並未從服務擷取任何即時資料,而是在/libs/crx/vault/com.day.jcr.sync.impl.VaultSyncServiceImpl讀取組態。

新增同步處理資料夾 adding-a-sync-folder

register命令是用來新增資料夾,以同步處理至組態。

$ vlt sync register
Connecting via JCR remoting to http://localhost:4502/crx/server
Added new sync directory: /tmp/workspace/vltsync/jcr_root
NOTE
在您設定sync-once組態之前,register命令不會觸發同步處理。

移除同步資料夾 removing-a-sync-folder

unregister命令用於從設定中移除要同步的資料夾。

$  vlt sync unregister
Connecting via JCR remoting to http://localhost:4502/crx/server
Removed sync directory: /tmp/workspace/vltsync/jcr_root
NOTE
您必須先取消註冊同步資料夾,才能刪除資料夾本身。

設定同步 configuring-synchronization

服務設定 service-configuration

服務執行後,可使用下列引數加以設定:

  • vault.sync.syncroots:定義同步根目錄的一或多個本機檔案系統路徑。

  • vault.sync.fscheckinterval:應掃描檔案系統以進行變更的頻率(以秒為單位)。 預設值為5秒。

  • vault.sync.enabled:啟用/停用服務的一般旗標。

NOTE
服務可以使用Web主控台或存放庫中的sling:OsgiConfig節點(名稱為com.day.jcr.sync.impl.VaultSyncServiceImpl)進行設定。
使用AEM時,有數種方法可管理此類服務的組態設定;請參閱設定OSGi以取得完整詳細資訊。

同步資料夾設定 sync-folder-configuration

每個同步資料夾都會將設定和狀態儲存在三個檔案中:

  • .vlt-sync-config.properties:組態檔。

  • .vlt-sync.log:記錄檔,其中包含同步期間所執行作業的相關資訊。

  • .vlt-sync-filter.xml:定義要同步存放庫哪些部分的篩選器。 此檔案的格式由執行篩選的簽出區段描述。

.vlt-sync-config.properties檔案可讓您設定下列屬性:

已停用 ​開啟或關閉同步處理。 此引數預設設為false以允許同步。

同步一次 ​若非空白,下次掃描將會以指定方向同步資料夾,然後會清除引數。 支援兩個值:

  • JCR2FS:匯出JCR存放庫中的所有內容,並寫入本機磁碟。
  • FS2JCR:將所有內容從磁碟匯入JCR存放庫。

sync-log ​定義日誌檔名。 預設值為.vlt-sync.log

使用VLT同步進行開發 using-vlt-sync-for-development

若要根據同步資料夾設定開發環境,請依照下列步驟進行:

  1. 使用vlt命令列簽出您的存放庫:

    code language-shell
    $ vlt --credentials admin:admin co --force http://localhost:4502/crx dev
    
    note note
    NOTE
    您可以使用篩選器來僅簽出適當的路徑。 如需詳細資訊,請參閱執行篩選的簽出區段。
  2. 移至工作復本的根資料夾:

    code language-shell
    $ cd dev/jcr_root/
    
  3. 將同步服務安裝到您的存放庫:

    code language-xml
    $ vlt sync install
    Connecting via JCR remoting to http://localhost:4502/crx/server
    Preparing to install vault-sync-2.4.24.jar...
    Updated bundle: vault-sync-2.4.24.jar
    Created new config at /libs/crx/vault/config/com.day.jcr.sync.impl.VaultSyncServiceImpl
    
  4. 初始化同步服務:

    code language-shell
    $ vlt sync
    Connecting via JCR remoting to http://localhost:4502/crx/server
    Starting initialization of sync service in existing vlt checkout /Users/colligno/Applications/cq5/vltsync/sandbox/dev/jcr_root for http://localhost:4502/crx/server/-/jcr:root
    Added new sync directory: /Users/trushton/Applications/aem/vltsync/sandbox/dev/jcr_root
    
    The directory /Users/trushton/Applications/aem/vltsync/sandbox/dev/jcr_root is now enabled for syncing.
    You might perform a 'sync-once' by setting the
    appropriate flag in the /Users/trushton/Applications/aem/vltsync/sandbox/dev/jcr_root/.vlt-sync-config.properties file.
    
  5. 編輯.vlt-sync-config.properties隱藏檔案並設定同步以同步存放庫的內容:

    code language-xml
    sync-once=JCR2FS
    
    note note
    NOTE
    此步驟會根據您的篩選器設定下載整個存放庫。
  6. 檢查記錄檔.vlt-sync.log以檢視進度:

    code language-xml
    ***
    30.04.2017 14:39:10 A file:///Users/trushton/Applications/aem/vltsync/sandbox/dev/jcr_root/apps/geometrixx-outdoors/src/core/src/main/java/info/geometrixx/outdoors/
    30.04.2017 14:39:10 A file:///Users/trushton/Applications/aem/vltsync/sandbox/dev/jcr_root/apps/geometrixx-outdoors/src/core/src/main/java/info/geometrixx/outdoors/core/
    30.04.2017 14:39:10 A file:///Users/trushton/Applications/aem/vltsync/sandbox/dev/jcr_root/apps/geometrixx-outdoors/src/core/src/main/java/info/geometrixx/outdoors/core/product/
    30.04.2017 14:39:10 A file:///Users/trushton/Applications/aem/vltsync/sandbox/dev/jcr_root/apps/geometrixx-outdoors/src/core/src/main/java/info/geometrixx/outdoors/core/product/GeoProduct.java
    ***
    

您的本機資料夾現在與存放庫同步。 同步是雙向的,因此來自存放庫的修改將套用至您的本機同步資料夾,反之亦然。

NOTE
VLT同步功能僅支援簡單的檔案和資料夾,但會偵測特殊的儲存庫序列化檔案(.content.xml、dialog.xml等),並自動忽略它們。 因此,可以在預設vlt出庫上使用儲存庫同步。
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2