Atom+MavensMateでSalesforceの開発環境を整える

salesforce

どうも!西村祐二@大阪です。

Salesforceの開発にはForce.com IDEを追加したEclipseやWeb上の開発者コンソールなどがありますが、
使い慣れたエディタでの開発やGitによるバージョン管理を行うために
Atom+MavensMateでSalesforceの開発環境を整えてみたいと思います。

環境

本記事では下記のバージョンで環境構築を行いました。

Mac macOS Sierra 10.12.5
MavensMate Desktop v0.0.11-beta.7
MavensMate for Atom 1.0.10

MavensMate Desktopをインストール

MavensMate Desktopとはデスクトップアプリケーションで
WebブラウザからSalesforceにアクセスせず、このアプリケーションから
プロジェクトの作成やAtomと連携しApex、Visualforceのコーディングが可能となります。
※Atomでコーディングする場合はMavensMate Desktopを常時起動しておく必要があります。

下記リンクから最新版をダウンロードしてください。
Release - MavensMate Desktop

今回はMavensMate-Desktop-0.0.11-beta.7-mac.zip を使用します。
ファイルをDL、解凍し、アプリケーションを起動させると下記のような画面が表示されます。

2017-05-22 14.37.04

設定

SETTINGSアイコンをクリックすることで、MavensMateの設定ができます。

WORKSPACES、SALESFORCE API VERSIONくらい設定し、他はデフォルトのままで問題ないかと思いますが、
どんな設定ができるか下記に記載しておきます。

WORKSPACES (MM_WORKSPACE)

作業ディレクトリをどこにするか設定できます。
私はホームディレクトリ配下に「sf-workspace」というディレクトリを作ってそこを指定しています。

SALESFORCE API VERSION (MM_API_VERSION)

使用しているSalesforceのAPIのバージョンを指定します。
APIのバージョンは下記より確認できます。
Salesforceにログインして設定→開発→API→APEX WSDLの生成→Salesforce.com Apex API version 39.0

Check conflicts before compile (mm_compile_check_conflicts)

チェックボックスをチェックすると
Apex/Visualforceをコンパイルするときにコンフリクトのチェックができます。

Download categorized Apex unit test logs (mm_download_categorized_test_logs)

チェックボックスをチェックすると
プロジェクトフォルダのdebug//ディレクトリに、Apexのユニットテストログを保存できます。

TIMEOUT, IN SECONDS (MM_TIMEOUT)

MavensMateコマンドのタイムアウト時間を設定できます。
デフォルトでは600秒。

POLLING INTERVAL, IN MILLISECONDS (MM_POLLING_INTERVAL)

ポーリング間隔を設定できます。
※ポーリング間隔が長くすると、コンパイル、デプロイ、およびテスト結果の待機時間が長くなります。

DEFAULT METADATA SUBSCRIPTION (MM_DEFAULT_SUBSCRIPTION)

プロジェクトに含めるメタデータタイプを指定できます。
デフォルトでは、ApexClass、ApexComponent、ApexPage、ApexTrigger、StaticResource

Ignore managed metadata (mm_ignore_managed_metadata)

チェックボックスをチェックすると
管理されたメタデータがMavensMateプロジェクトにダウンロードされないようになります。

Use keyring (mm_use_keyring)

キーチェーンサポートを使用してSalesforce.comの資格情報を保存/取得する場合はチェックボックスにチェックしておきます。
チェックなしの場合はパスワードをプロジェクトのconfig/.settings、およびconfig/.org_connectionsファイルにプレーンテキストで保存されます。

Compile Apex/Visualforce metadata with Tooling API (mm_compile_with_tooling_api)

ツールAPIを使用してapexメタデータをコンパイルする場合はtrueに設定します。(コンパイルの問題が発生した場合は、これをfalseに設定してメタデータAPIを使用します)

(Advanced) Use your machine's "unzip" cli to unzip responses from Salesforce.com Metadata API (mm_legacy_unzip)

チェックボックスをチェックすると
メタデータAPIからの応答を解凍する際にローカルの"unzip"cliを使用します。

SUBLIME TEXT LOCATION (MM_SUBL_LOCATION)

Sublime textのパスを指定できます。

ATOM EXECUTABLE LOCATION (MM_ATOM_EXEC_PATH)

Atomのパスを指定できます。

VISUAL STUDIO CODE EXECUTABLE LOCATION (MM_VSCODE_EXEC_PATH)

Visual Studio Codeのバスを指定できます。

MAVENSMATE LOGS LOCATION (MM_LOG_LOCATION)

MavensMateのログの保存場所を指定できます。
フルパスにて指定する必要があります。また、ログファイルを「mavensmate.log」となります。

PLUGIN LOG LEVEL (MM_LOG_LEVEL)

ログレベルを指定できます。
INFO、WARN、DEBUG、VERBOSE、SILLYが設定できます。

Play sounds (mm_play_sounds)

通知音のオン/オフ設定ができます。

MAVENSMATE TEMPLATES LOCATION (MM_TEMPLATE_LOCATION)

テンプレートをGitHubから取得する必要がある場合は、「remote」に設定します。
MavensMate-Templatesをローカルにクローンし、
ローカルファイルシステムのテンプレートをソース化する場合は、 「local」に設定します。

MAVENSMATE TEMPLATE SOURCE (MM_TEMPLATE_SOURCE)

"mm_template_location"が "local"に設定されている場合は、
MavensMate-Templatesプロジェクトをフォークしたディレクトリの絶対パスに設定します。

SALESFORCE FILE EXTENSIONS (MM_APEX_FILE_EXTENSIONS)

Salesforceのファイルとみなすべきファイル拡張子を指定できます。

HTTP PROXY (MM_HTTP_PROXY)

プロキシの設定ができます。

HTTPS PROXY (MM_HTTPS_PROXY)

プロキシの設定ができます。

Purge on delete (mm_purge_on_delete)

メタデータを削除時にHardDelete(復活不可能)な削除にする設定ができます。

Use legacy compile method (mm_legacy_compile)

レガシーなコンパイルを利用する設定ができます。

プロジェクト作成

MavensMate上でプロジェクトを作成します。
Salesforceの環境を選択し「Connect」をクリックします。

2017-05-22 15.01.07

接続が完了したら、「Project Name」を入力し、「Create Project」をクリックしプロジェクトを作成します。

2017-05-22_15_02_56

プロジェクトの作成が完了したら、下記画面へとなります。

2017-05-23 19.00.50

AtomにてMavensMateパッケージをインストール

次にAtomにて、「MavensMate for Atom」をインストールします。
メニューバーのAtom → Preferences → Installの順でクリックします。

検索ボックスに、 「MavensMate」 と入力し、ヒットしたプラグインをインストールします。

2017-05-22_15_12_20

Salesforce開発で使えそうなパッケージ

Language Salesforce
Linter Lightning

visualforce pageを作成してみる

作成したプロジェクトをatomで開きvisualforce pageを作成します。

2017-05-23_19_12_55

今回、APIの名前は「test」としました。

2017-05-23 19.14.21

visualforce pageの作成が完了するとプロジェクトのディレクトリ内に「pages」が作成されます。

2017-05-23 19.18.16

次にtest.pageファイルを編集し、保存し、Salesforceへ反映されているか確認します。

画面上に「Hello World from atom」が表示されるように編集しました。 2017-05-23 19.22.15

MavensMateからSalesforceへアクセスすることができます。

2017-05-23 19.26.38

Salesforce上からでもローカルで作成したvisualforce pageが作成されていることがわかります。

2017-05-23_19_28_03

2017-05-23_19_30_05

2017-05-23 19.31.48

まとめ

Atom+MavensMateでSalesforceの開発環境を整えてみました。

今回はエディタをAtomにしましたが、Atom以外にもSublime text3、Visual Studio Codeでも同様にSalesforceの開発環境を作ることができます。
また、今回紹介した方法以外にもSalesforce DXという新しい開発環境が開発されているので、今後の動向をウォッチしていきたいと思います。