Saturday, October 20, 2012

Jenkins勉強会で実にいいプレゼンを見た。

実にいいプレゼンでした。Java言語とかビルドツールとかではない方向から、しかし継続的デリバリーの本質に迫る、しかしほんわかとした、いいプレゼンでした。

その他のまとめとか:

Saturday, October 13, 2012

.settingsフォルダや.projectファイルをVCSで管理すべきか

eclipse上のプロジェクトとしてソースコードをむさぼった後、さて、SubversionかGitにコミットする段になったとします。コミットダイアログ上では .settings/foo.bar.xml とか .project とか .classpath といったeclipse用の制御ファイルもコミット対象としてチェックボックスがオンになっています。

あなたは迷わずそのままコミットボタンを押しますか?それとも、その前にignore(無視、除外)の設定にかかりますか?

この問題に対する行動は、案外、人によって違うようです。たとえば、svn - Which eclipse files belong under Version Control - Stack Overflow 2008.12(どのeclipseファイルをバージョン管理の対象とすべきでしょうか?)という質問には、下記の回答のポイントが高いようです。

project-dir/.project
project-dir/.classpath
project-dir/.settings/*

should be in your SCM.
(訳:上記のファイルはバージョン管理下におくべきだ
The goal is that anyone can checkout/update his/her SCM workspace and import the eclipse project into the eclipse workspace. (訳:誰もが自分のSCMワークスペースにチェックアウトまたは更新できて、eclipseワークスペースにプロジェクトをインポートできる、それがゴールだ)

こんなQ&Aもあります。 java - Should Eclipse-specific files in an VCS be ignored, if using Maven? - Stack Overflow 2011.11 これはビルドツールとしてmavenを使っているプロジェクトの話のようです。

With the team's I've worked on, the general rule has been that you don't check in anything that is generated by or obtained by Maven. Since the pom.xml contains everything you need to create the .project, .classpath, and .settings files, we don't check them in.
訳:私のチームでは、mavenが生成または監視しているファイル以外は(VCSに)チェックインしないのが共通のルールです。.projectや.classpath、.settingsファイル群を作るための情報はpom.xmlに含まれているからです。だから、それらをチェックインすることはありません。

実際、eclipseにm2eプラグインを入れておけば、pom.xmlのdependenciesタグに沿って必要なライブラリを自動的にビルドパスに入れてくれます(=.classpathファイルが自動的に書かれる)。その他の制御ファイルもそうです。

一方でこんなエントリも見かけました。 a little madness » Blog Archive » Setting Up An Android Project Build

Make sure you don’t forget to check in the hidden Eclipse files .classpath, .project and .settings. By structuring the projects so they live under a single top-level folder, it should be easy to add them to the version control server of your choice.
訳:eclipseの隠しファイルである.classpath, .project, .settingsをチェックインするのを忘れないでください。一つの最上位フォルダの下にプロジェクトを構築すれば、これらのファイルをバージョン管理サーバに追加するのは簡単です。

androidのネイティブアプリを作るプロジェクトで、ビルドツールとしてantを使っているケースのようです。androidの公式サイトでの解説でも、プロジェクト直下にbuild.xmlというantのビルド定義ファイルを作ることになっています。(ただし、eclipseの制御ファイルをどうするかまでは触れられていません)

個人的には、mavenを使っている/いないに関わらず、eclipseの制御ファイルをsvnやgitで管理することには抵抗を覚えます。一人で仕事をしているのならいいのですが、他人と協力して構築してゆくプロジェクトの場合、eclipseのバージョンや環境を横並びにそろえる必要があります。しかし実際はeclipse3.7を使っている人もいればeclipse4.2を使っている人もいるのです。必ずトラブルになるでしょう。