Eclipseのポータブル運用(revised)

みなさま開発環境どうしていますか?

最近は各種IDEだけでなく、AtomやSublime Textはもちろん、Emacsそしてvimもそれなりにプラグインと設定が重厚長大で、移動させれてもOKとも言い難いです。
それでもまあエディタ系はプラグインマネージャと設定ファイルのリポジトリチェックアウトでどうにかなりますが...

自分はEmacs/vimがメイン(だが、環境がぜんぜん再構築できてない)ですが、IDEとしてはEclipseを使いたい(まだ使いこなせない)ので、Eclipseをポータブルに運用したいと考えています。
各マシンで、環境を再構築できる自信がないので、まとめてバックアップできることと移動できるようになってないと死ねます。

そんでそのレシピをメモしつつ公開する次第です。
(自分的に便利なようにしただけですので、末尾のメリット/デメリットを検討して利用してください。というか大部分の人はPleiadesを移動させれば問題ないのかもしれません)

-----

# 導入
以前は`EclipsePortable`にPleiadesを組合せ、そこにプラグインを導入していました。この環境は構築に苦労したんですが[^1]、最新の4.4系で構築しなおそう[^2]としていろいろやった結果、比較的楽だった[^3]ので、その手順です。
なお、PortableApps系についてご存知ないと厳しいところはあります。

## `EclipsePortable`の入手
[sourceforge.jp](http://sourceforge.jp/projects/sfnet_eclipseportable/ "Eclipse Portable")より`EclipsePortable_4.4_Classic_Edition.paf.exe`を取得。

っても、ランチャー部分しか使わないことになるが。

## Pleiades All in Oneの入手
[Pleiades](http://mergedoc.sourceforge.jp/ "Pleiades - Eclipse プラグイン日本語化プラグイン")より

```
32bit Ultimate Full
```

を取得。

実行用JREは消すので、Standardでもいいのかもしれませんが、わかんないので。

## JREの入手
[PortableApps](http://portableapps.com/)の`jPortable`を入手。

## 基本セットアップ
`EclipsePortable`、`jPortable`を同じフォルダに向けてインストールする。

結果、以下のフォルダ構成になるはず(PortableAppsランチャーが作るフォルダ構成準拠)

```
/
+- Documents <- ここらは後の説明に関係します
|   +- workspace
+- PortableApps <- インストール先フォルダ
     +- CommonFiles
     |   +- Java
     +- EclipsePortable
```

## Pleiades All in Oneへ入れ替え
`EclipsePortable`の`App\Eclipse`と`App\Java`をリネーム、`.origin`つきにしておく(一応保存、消してもいいはず)。
Pleiades All in Oneの`pleiades`内すべてを`App`内に展開、これで`App\eclipse\eclipse.exe`が存在する状態になる。

## Pleiadesの設定をPortable対応へ[^4]
なお、参考先の設定方法だと、もともとのEclipseへPleiadesをプラグインとして導入することもできます。

`App\eclipse\eclipse.ini`の`javaagent`を

```
-javaagent:dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
```

から

```
-javaagent:App/eclipse/dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
```

にします。
あと、`eclipse\jre`に実行用JREがありますが、これは削除します。

ここまでで最低限は動くはずです。
jPortableとの絡みで上記設定しますので、逆に`EclipsePortable.exe`から起動しないといけなくなっています。

初回起動がトチる気がしますので、一度起動させてプロセスがいなくなってたら、再度起動させてみてください。
その上でだめだったら、最初からやり直すなどしてください。

上手くいってるかは、「Eclipseインストール詳細」でフォルダ構成他を確認すれば分ると思います。

# 環境整備
## ワークスペースのベース
WorkspaceをDocumentsに取りたい(現状はPortableApps(実行ファイル群)のEclipsePortable\Data(運用データなどアプリ側データ向け)にできてしまう)ので以下の設定を行う。[^6]

`eclipse.ini`の`-vmargs`オプションより前に`-data`として、EclipsePortableフォルダからの相対パスを入れる。

```
-data
..\..\Documents\workspace
--launcher.appendVmargs
-vmargs
```

みたいなカンジ。

## ワークスペースのパス表示[^5]
ポータブルにすると、いろいろファイルをちらかしかねないので、念のため。

`eclipse.ini`に`-showLocation`を追加。

## プロジェクトオーサー(`-Duser.name` によるクラス作成時の Javadoc @author 自動補完 )[^7]
同じく作者名データを明確に。
折角環境を自分所有にするんですし。

`-vmargs`以降に`-Duser.name`で名前、メールアドレスなどを定義。

## カラーテーマ
自分はSolarizedなので、ここを参照しました。[^8]

マーケットプレースからColor Themeをインストールし、[Eclipse Color Theme](http://eclipsecolorthemes.org/)から[Solarizedテーマ](http://eclipsecolorthemes.org/?view=theme&id=1013)のXMLファイルをダウンロード、インポートして適用します。

-----

# メリットとデメリット
Pleiades All in Oneでもポータブルとも言えるのですが

+ 設定をカスタマイズした環境を運びやすい(ランチャーあるので)
+ JREをPortableAppsのアップデートで更新できるので、実行環境用のセキュリティ更新という意味で解決する。もちろんSDKなどは自前管理なので、バージョン維持できる。

デメリット

+ といいつつPython環境とか更新されない気がする(cleanできればいい?)
+ 手動で-cleanが掛けにくい(eclipse.iniに記述する必要があるはず)
+ JREがjPortableなので7系など、環境の影響は多少ある


[^1]: 本文にあるポイントを踏まえないとEclipse Portableに単純には入れられないことと、CDTやPyDevのために`MSYS Portable`/`MinGW Portable`、`Python Portable`を導入する必要があり、このことに辿りつくのに時間がかかった
[^2]: `EclipsePortable`をふと見たら4.4が出てたので
[^3]: Pleiades All in Oneに全部入ってたので楽
[^4]: 参考 [Eclipse portable を使う - ふなWiki](http://blue-red.ddo.jp/~ao/wiki/wiki.cgi?page=Eclipse+portable+%A4%F2%BB%C8%A4%A6)
[^5]: 参考 [Eclipseのタイトルバーにワークスペース名を表示する](http://qiita.com/mshoj@github/items/88b5d45ddbfabc599d49)
[^6]: 参考 [eclipse.exe のオプションでワークスペースを指定する](http://www.hitachi.co.jp/Prod/comp/soft1/cosminexus/useful/tips/090205_eclipse-workspace-option.html)
[^7]: 参考 [eclipse.iniの設定 - デベロッパー スペース - Jiemamy Project](http://jiemamy.org/pages/viewpage.action?pageId=5570773)
[^8]: 参考 [Solarized に染まる - Eclipse 編 - 全力で怠けたい](http://d.hatena.ne.jp/ebc_2in2crc/20121027/1351338597)