如何使用VLT工具 how-to-use-the-vlt-tool
Jackrabbit FileVault工具(VLT)是由 Apache Foundation 將Jackrabbit/AEM例項的內容對應至您的檔案系統。 VLT工具具有與原始碼控制系統客戶端(如Subversion(SVN)客戶端)類似的功能,提供正常的簽入、簽出和管理操作,以及用於靈活表示項目內容的配置選項。
從命令行運行VLT工具。 本檔案說明如何使用工具,包括如何開始使用及取得說明,以及列出所有 命令 可用 選項.
概念與架構 concepts-and-architecture
請參閱 Filevault概述 和 保管庫FS 來自官方 Apache Jackrabbit Filevault檔案 以全面了解Filevault工具的概念和結構。
VLT快速入門 getting-started-with-vlt
若要開始使用VLT,您必須執行下列操作:
- 安裝VLT、更新環境變數和更新全局忽略的Subversion檔案。
- 設定AEM存放庫(如果尚未這麼做)。
- 查看AEM存放庫。
- 與儲存庫同步。
- 測試同步是否有效。
安裝VLT工具 installing-the-vlt-tool
若要使用VLT工具,您必須先安裝它。 預設不會安裝它,因為它是其他工具。 此外,您還需要設定系統的環境變數。
-
note note NOTE VLT工具的來源是 可在GitHub上使用。 1. 解壓縮封存。
-
新增
<archive-dir>/vault-cli-<version>/bin
環境PATH
這樣命令檔案vlt
或vlt.bat
可視情況存取。 例如:<aem-installation-dir>/crx-quickstart/opt/helpers/vault-cli-3.1.16/bin>
-
開啟命令行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
您需要將檔案與儲存庫同步。 要執行此操作:
-
在命令列中,導覽至
content/jcr_root
. -
鍵入以下內容(將埠號替換為 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 ,並查看是否在提交變更後反映變更。
要測試同步,請執行以下操作:
- 導覽至
.../jcr_content/libs/foundation/components/text
。 - 編輯
text.jsp
. - 通過鍵入
vlt st
- 輸入
vlt diff text.jsp
- 提交更改:
vlt ci test.jsp
. - 重新載入包含文字元件的頁面,並查看您的變更是否存在。
取得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 in order 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
這樣會建立新的匯出根 geo
帶 META-INF
和 jcr_root
目錄,並將所有檔案放在 /apps/geometrixx
in 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
控制:
-
最初設定儲存庫:
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
-
更改遠程副本並更新JCR:
code language-shell $ cd /projects/geometrixx $ vlt -v import http://localhost:4502/crx . /
-
更改遠程副本並更新檔案伺服器:
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>
-Xdavex <arg>
--credentials <arg>
--config <arg>
-v (--verbose)
-q (--quiet)
--version
--log-level <level>
-h (--help) <command>
VLT命令 vlt-commands
下表介紹了所有可用的VLT命令。 有關語法、可用選項和示例的詳細資訊,請參閱各個命令。
export
import
checkout
co
analyze
status
st
update
up
info
commit
ci
revert
rev
resolved
res
propget
pg
proplist
pl
propset
ps
add
delete
del
或 rm
diff
di
console
rcp
sync
匯出 export
導出裝載在的Vault檔案系統 <uri> 到本地檔案系統(位於 <local-path>. 可選 <jcr-path> 可以指定,以便僅導出子樹。
語法 syntax
export -v|-t <arg>|-p <uri> <jcr-path> <local-path>
選項 options
-v (--verbose)
-t (--type) <arg>
-p (--prune-missing)
<uri>
<jcrPath>
<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>
<jcrPath>
<localPath>
範例 examples-1
vlt import http://localhost:4502/crx . /
結帳(co) checkout-co
從JCR儲存庫到本地檔案系統執行初始檢出,從 <uri> 到本地檔案系統(位於 <local-path>. 您也可以新增 <jcrpath> 用於簽出遠程樹的子目錄的參數。 可以指定將複製到META-INF目錄的工作區篩選器。
語法 syntax-2
checkout --force|-v|-q|-f <file> <uri> <jcrPath> <localPath>
選項 options-2
--force
-v (--verbose)
-q (--quiet)
-f (--filter) <file>
<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>
-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
移除 衝突 工作副本檔案或目錄的狀態。
語法 syntax-9
resolved -q|-R|--force <file1> [<file2> ...]
選項 options-9
-q (--quiet)
-R (--recursive)
--force
<file> [<file> ...]
普羅佩特 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
在檔案或目錄上設定屬性的值。
vlt:mime-type
語法 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>
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)
-e (--exclude) <arg> [<arg> ...]
<src>
<dst>
範例 examples-3
vlt rcp http://localhost:4502/crx/-/jcr:root/content https://admin:admin@localhost:4503/crx/-/jcr:root/content_copy
--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>
<command>
<localPath>
狀態代碼 status-codes
VLT使用的狀態代碼為:
- 「 」沒有修改
- 新增「A」
- 'C'衝突
- 已刪除'D'
- 「I」忽略
- 已修改'M'
- 已替換'R'
- '?' 項目不在版本控制下
- '!' 項缺失(由非svn命令刪除)或不完整
- 「~」版本化項目被不同類型的項目阻塞
設定FileVault同步 setting-up-filevault-sync
保管庫同步服務用於將儲存庫內容與本地檔案系統表示同步,反之亦然。 這是通過安裝OSGi服務來實現的,該服務將監聽儲存庫更改並定期掃描檔案系統內容。 它使用與儲存庫相同的序列化格式將儲存庫內容映射到磁碟。
使用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.
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
register
在配置 sync-once
設定。刪除同步資料夾 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
配置同步 configuring-synchronization
服務配置 service-configuration
服務執行後,可使用下列參數進行設定:
-
vault.sync.syncroots
:定義同步根的一個或多個本地檔案系統路徑。 -
vault.sync.fscheckinterval
:應掃描檔案系統以進行更改的頻率(以秒為單位)。 預設為5秒。 -
vault.sync.enabled
:啟用/停用服務的一般標幟。
sling:OsgiConfig
節點(具有名稱 com.day.jcr.sync.impl.VaultSyncServiceImpl
)。同步資料夾配置 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
若要根據同步資料夾來設定開發環境,請依照下列步驟進行:
-
使用vlt命令列簽出儲存庫:
code language-shell $ vlt --credentials admin:admin co --force http://localhost:4502/crx dev
note note NOTE 您可以使用篩選條件來僅結帳適當的路徑。 請參閱 執行篩選的結帳 一節。 -
前往工作副本的根資料夾:
code language-shell $ cd dev/jcr_root/
-
將同步服務安裝到儲存庫:
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
-
初始化同步服務:
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.
-
編輯
.vlt-sync-config.properties
隱藏檔案並配置同步以同步儲存庫的內容:code language-xml sync-once=JCR2FS
note note NOTE 此步驟會根據您的篩選設定下載整個存放庫。 -
檢查日誌檔案
.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 ***
您的本機資料夾現在已與存放庫同步。 同步是雙向的,因此從儲存庫進行的修改將應用於本地同步資料夾,反之亦然。