Force.com Migration tool
Force.com Migration tool - очень полезный инструмент при выполнении задач переноса кода между оргами. Точно по такому же принципу, но с большей долей автоматизации работает Force.com IDE.
Migration tool работает на основе Apache Ant, популярной утилиты java для автоматизации процесса сборки.
Для установки Force.com Migration tool понадобится:
1. JDK версии 6.1 или выше.
2. Apache Ant, Version 1.6 или выше
3. Настроить глобальные переменные (ANT_HOME, JAVA_HOME и PATH) согласно инструкции для Ant.
4. Зайти на орг и скачать Force.com Migration tool (Setup -> Develop -> Tools). Это архив с плагином Ant ant-salesforce.jar и примерами.
5. Скопировать ant-salesforce.jar в папку lib, расположенную в директории с установленным Ant.
Создайте пустую папку для экспериментов и командной строке введите ant. В ответ должно вернуться:
Build failed
Если вы видите это сообщение, то настройка прошла удачно и теперь можно пробовать Migration tool.
Попробуем вылить на свой комп созданные ранее тестовые страницу и контроллер.
Для минимальной конфигурации нам нужны следующие файлы:
build.properties
sf_dev.username=your-username@somemail.com
sf_dev.password=your_password
sf_dev.serverurl=https://login.salesforce.com (или https://test.salesforce.com для sandbox)
sf_to.username=your-username@somemail.com
sf_to.password=your_password
sf_to.serverurl=https://login.salesforce.com (или https://test.salesforce.com для sandbox)
ВАЖНО: система безопасности Salesforce требует, чтобы при использовании API различными инструментами к паролю добавлялся security token. Его можно получить в Setup -> My Personal Information -> Reset My Security Token -> придет на мыло. Или сделать проще - добавить IP в разрешенные Setup -> Administration Setup -> Security Controls -> Network Access -> добавить диапазон разрешенных IP. Тогда про Security Token можно забыть.
<project name="Levis" default="getFrom" basedir="." xmlns:sf="antlib:com.salesforce">
<property file="build.properties"/>
<property environment="env"/>
<target name="getFrom">
<mkdir dir="retrieveUnpackaged"/>
<!-- Retrieve the contents into another directory -->
<sf:retrieve
username="${sf_dev.username}"
password="${sf_dev.password}"
serverurl="${sf_dev.serverurl}"
retrieveTarget="retrieveUnpackaged"
unpackaged="package.xml"
/>
</target>
<target name="deployTo">
<sf:deploy
username="${sf_sandbox.username}"
password="${sf_sandbox.password}"
serverurl="${sf_sandbox.serverurl}"
deployRoot="retrieveUnpackaged"
/>
</target>
</project>
package.xml
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>Hello_World_Controller</members>
<name>ApexClass</name>
</types>
<types>
<members>Hello_World</members>
<name>ApexPage</name>
</types>
<version>26.0</version>
</Package>
Теперь если запустить из командной строки ant getFrom. Должен получиться примерно похожий результат.
D:\test>ant getFrom
Buildfile: D:\test\build.xml
getFrom:
[mkdir] Created dir: D:\test\retrieveUnpackaged
[sf:retrieve] Request for a retrieve submitted successfully.
[sf:retrieve] Request Id for the current retrieve task: 04sd0000002H1gaAAC
[sf:retrieve] Waiting for server to finish processing the request...
[sf:retrieve] Request Status: Completed
[sf:retrieve] Finished request 04sd0000002H1gaAAC successfully.
BUILD SUCCESSFUL
Total time: 15 seconds
Если все удачно, должна появиться папка retrieveUnpackaged такой структуры:
│ build.properties
│ build.xml
│ package.xml
│
└── retrieveUnpackaged
│ package.xml
│
├── classes
│ Hello_World_Controller.cls
│ Hello_World_Controller.cls-meta.xml
│
└── pages
Hello_World.page
Hello_World.page-meta.xml
Теперь можно поменять все что душе угодно и залить обратно на орг используя команду ant deployTo. Должно получиться примерно следующее:
D:\test>ant deployTo
Buildfile: D:\test\build.xml
deployTo:
[sf:deploy] Request for a deploy submitted successfully.
[sf:deploy] Request Id for the current deploy task: 04sd0000002H1hXAAS
[sf:deploy] Waiting for server to finish processing the request...
[sf:deploy] Request Status: Completed
[sf:deploy] Finished request 04sd0000002H1hXAAS successfully.
BUILD SUCCESSFUL
Total time: 13 seconds
Комментарии
Отправить комментарий