Salesforce ant インストールから使い方まで
- はじめに
- 手順1(antのインストール)
- 手順2(antのインストール)
- 手順3(antのインストール)
- 手順4(antインストール後の設定)
- 手順5(リトリーブの方法)
- 手順6(リトリーブの方法)
- 手順7(デプロイ の方法)
- 参考文献
はじめに
javaをインストールできている。私の環境ではこのようなバージョンのjavaが入っている
openjdk version "13.0.1" 2019-10-15 OpenJDK Runtime Environment Zulu13.28+11-CA (build 13.0.1+10-MTS) OpenJDK 64-Bit Server VM Zulu13.28+11-CA (build 13.0.1+10-MTS, mixed mode, sharing)
手順1(antのインストール)
developer.salesforce.com
上記サイトを基に説明していく。まずantをインストールする。
Apache Ant - Binary Distributions
手順2(antのインストール)
ダウンロードしたZIPファイルを解凍する。デスクトップに置いていても良いが、/usr/local/binに移動させるのが一般的。図ではfinderのGUIを用いてファイルを移動させた。CUIで移動できるならそっちの方が早い。
手順3(antのインストール)
次に保存したフォルダにパスを通す必要がある。環境変数にパスを記載して通す。.bash_profileファイルを作成する必要があります。
.bash_profileファイルはホームディレクトリに存在。
|--home
隠しファイルが見えない状態になっている場合は以下のサイトから表示させるようにコマンドを入力しておく。【Mac】隠しファイル・隠しフォルダを表示する方法 - Qiita
.bash.profileファイルに以下を記載する
ANT_HOME=/usr/local/bin/apache-ant-1.9.14 ←※保存しているversionによって記載は異なる export PATH=$ANT_HOME/bin:$PATH
さらに、このコマンド
source ~/.bash_profile
上記コマンドで読み込みをしてくれる。
antツールが正しく読み込まれているかを確認するために、以下コマンドを入力。
ant -version
インストールできていればバージョンが表示。
Apache Ant(TM) version 1.9.14 compiled on March 12 2019
手順4(antインストール後の設定)
Ant移行ツールをダウンロードする。
Salesforce Developers
ZIPファイルを解凍すると図のようなファイルが入っている。
このうちsampleは資源を環境からデプロイまたは、ダウンロードする際に使用するために、デスクトップにおいておく。
ant-salesforce.jarは保存するディレクトリを変更しないといけない。
ここに保存
|--usr |--local |--bin |--apache-ant-1.9.14 |--lib |--ant-salesforce.jar ←ここに保存
写真でも見せておく。
apache-ant.1.9.14(ダウンロードするバージョンによってフォルダ名は異なる)以下のlibフォルダ
これで準備は完了である。
手順5(リトリーブの方法)
sampleフォルダを使用してsalesforceの環境からデータを引っ張っていく。
図を参考にしてbilud.propertiesの記述を変更する。どの組織に繋ぐのかを記載。ログインURLに注意。サンドボックスならtestとなる。
手順6(リトリーブの方法)
環境から資源をダウンロードするのはフォルダはretrieveUnpackagedがデフォルトでなっている。
手順はコード化されておりSAMPLEフォルダ直下にあるbuild.xmlに記載がある。
下記コードはSFDC環境から資源をダウンロードするretrieveUnpackagedの記述。詳しく見てみる
<target name="retrieveUnpackaged"> <mkdir dir="retrieveUnpackaged"/> <!-- Retrieve the contents into another directory --> <sf:retrieve username="${sf.username}" password="${sf.password}" sessionId="${sf.sessionId}" serverurl="${sf.serverurl}" maxPoll="${sf.maxPoll}" retrieveTarget="retrieveUnpackaged" unpackaged="unpackaged/package.xml"/> </target>
unpackaged="unpackaged/package.xml"と記載ある。
記載の通りunpackagedフォルダのpackage.xmlを覗いてみる。
<?xml version="1.0" encoding="UTF-8"?> <Package xmlns="http://soap.sforce.com/2006/04/metadata"> <types> <members>*</members> <name>ApexClass</name> </types> <types> <members>*</members> <name>ApexTrigger</name> </types> <version>47.0</version> </Package>
ここで記述されているのは2点。ApexClassとApexTriggerの全てを対象とする
何の資源をダウンロードしたいのかを明確にするのはこの場所である。
例えばライトニングコンポーメントの資源を全てダウンロードしたいとなれば以下の記述になる。
<?xml version="1.0" encoding="UTF-8"?> <Package xmlns="http://soap.sforce.com/2006/04/metadata"> <types> <members>*</members> <name>ApexClass</name> </types> <types> <members>*</members> <name>ApexTrigger</name> </types> <types> <members>*</members> <name>AuraDefinitionBundle</name> </types> <version>47.0</version> </Package>
少し話は戻り、build.xmlをもう一度見てみる。
retrieveTarget="retrieveUnpackaged"
と記載がある。ここにデータを吐き出すよって意味の記載。追加したライトニングコンポーメントはこのディレクトリ以下に溜まっていく。
実際に実行してみる。ターミナルからディレクトリをSAMPLEフォルダまで移動
cd desktop cd sample
コマンドを以下入力
ant retrieveUnpackaged
これでretrieveUnpackagedフォルダに指定した資源をダウンロードできるようになる。続いてデプロイについて記述していく。
手順7(デプロイ の方法)
資源をデプロイする方法について記述してみる。
build.xmlファイルをみる。
デプロイにかかる記述はdeployCodeに記載がある。
そのコードを詳しく見てみる。
<target name="deployCode"> <!-- Upload the contents of the "codepkg" directory, running the tests for just 1 class --> <sf:deploy username="${sf.username}" password="${sf.password}" sessionId="${sf.sessionId}" serverurl="${sf.serverurl}" maxPoll="${sf.maxPoll}" deployRoot="codepkg" testLevel="RunSpecifiedTests" rollbackOnError="true"> <runTest>SampleDeployClass</runTest> </sf:deploy> </target>
記載が長いので以下に大事な部分を抜粋。
<runTest>SampleDeployClass</runTest> は実行するテスト(資源)を指定している
本番環境ではテスト実行は必須だが、開発環境をまたぐ時にわざわざ実行するのも面倒なので
<target name="deployCode"> testLevel="NotestRun" > </target>
に設定すればテストクラスをデプロイ する必要はない。
deployRoot="codepkg" となっているため、codepkgフォルダを覗きにいく
こんなディレクトリ構造になっている。
|--codepkg |--classes |--triggers |--package.xml
先ほどの資源ダウンロード同じように、上記ディレクトリにデプロイしたい資源を入れて送る。
送る内容はpackage.xmlにて記載する。
<?xml version="1.0" encoding="UTF-8"?> <Package xmlns="http://soap.sforce.com/2006/04/metadata"> <types> <members>SampleDeployClass</members> <members>SampleFailingTestClass</members> <name>ApexClass</name> </types> <types> <members>SampleAccountTrigger</members> <name>ApexTrigger</name> </types> <version>47.0</version> </Package>
ここからライトニングコンポーネントを送るように指定するにはこのような書き方になる。
<?xml version="1.0" encoding="UTF-8"?> <Package xmlns="http://soap.sforce.com/2006/04/metadata"> <types> <members>test_kawa</members> <name>AuraDefinitionBundle</name> </types> <version>47.0</version> </Package>
test_kawaというコンポーネントを追加した。
この場合はコンポーネント単位(フォルダ)
コンポーネントの中身のjsファイル、cssファイルのみなども遅れるとおもうがまだ調べられていない。
|--codepkg |--aura |--classes |--triggers |--package.xml
auraに送りたい資源をいれる。
送りたい資源のみをフォルダにいれる。今回はclasses,tirggersは送らないので空にする。
あとは、コマンドを実行する。
ant deployCode