12

私たちのプロジェクトでは Eclipse フォーマッターに依存して、書式設定規則を適用しています。それはうまく機能し、私たちはそれを本当に気に入っています.

プロジェクトのフォーマッター ファイルをソース管理に保管し、このフォーマッターを Eclipse にインポートするように全員に依頼します。唯一の深刻な問題は、誰かがフォーマッタを変更して変更をコミットするたびに、すべてのチーム メンバーが手動でフォーマッタを「再インポート」する必要があることです。そして、それを忘れがちなので、チーム内で異なるバージョンのフォーマッターを使用することになることがよくあります。

フォーマッタ ファイルが更新されたときに、Eclipse に新しいバージョンのフォーマッタを自動的に使用させる方法はありますか? (つまり、Eclipse に「フォーマッター ファイルへのパスは次のとおりです。常にこのファイルの現在のバージョンをフォーマッターとして使用してください」と言うことができますか?) それはすばらしいことです。

何か案は?

4

2 に答える 2

14

序章

フォーマッター、コードテンプレートなどは、プロジェクト固有の設定としてフォルダーに保存できます.settings/必ずしもワークスペースにフォーマッターを再インポートする必要はありません。

プロジェクト固有の設定を組み合わせて使用​​して、プロジェクトsvn:externalsにフォーマッターやコードテンプレートなどを「挿入」できます。

svn:externals:

いくつかの異なるチェックアウトから作成された作業コピーを作成すると便利な場合があります。たとえば、リポジトリ内のさまざまな場所から、またはおそらく完全にさまざまなリポジトリから、さまざまなサブディレクトリを取得したい場合があります。

プロジェクト

  1. com.xyz.codeconventionsプロジェクト固有のフォーマッターとコードテンプレートを追加した名前のJavaプロジェクトがあります。このプロジェクトはバージョン管理下にあります。
  2. 他のすべてのプロジェクトでは、プロジェクトからフォルダーsvn:externalsを「挿入」するためのプロパティを定義します(これはプロジェクト固有のデータが保存されているフォルダーです)。.settings/com.xyz.codeconventions
  3. フォーマッターを変更したい場合は、プロジェクトを編集して、変更を送信するためにcom.xyz.codeconventions使用できます。svn commitチームはsvn update、最新バージョンのコードフォーマッターを入手するために、すべてのプロジェクトに取り組む必要があります。

構成

このフォーマッターを使用する必要があるすべてのプロジェクトでは、svn:externalsプロパティを定義する必要があります。

com.xyz.project1の例:

キー値
---- ------
svn:externals http://path/to/com.xyz.codeconventions/.settings .settings

Eclipse(私の場合はSubversive)では、svn固有のプロパティを。で追加できますTeam -> Set property...

リポジトリのレイアウト

この場合のリポジトリ構造は次のようになります。

<ルート>
   |
   +-com.xyz.project1#(svn:externals-> <root> /codeconventions/.settings .settings)
   | |
   | +-src
   | +-<...>
   +-com.xyz.project2#(svn:externals-> <root> /codeconventions/.settings .settings)
   | |
   | +-src
   | +-<...>
   +-com.xyz.codeconventions
        |
        +-.settings#(このフォルダーはproject1とproject2に「注入」されます)
             |
             +-org.eclipse.jdt.core.prefs
             +-org.eclipse.jdt.ui.prefs

追加コメント/制限

  • このアプローチはsvnユーザー専用ですが、使用する場合は、 Submodulesgitという名前のsvn:externalsに似たものがあります。
  • プロジェクト1とプロジェクト2では、既存のファイルを上書きできない.settings/ため、フォルダーがないことを確認してください。svn:externals
  • フォルダ内に完全に異なるフォーマッタまたは異なるファイルを必要とするJavaプロジェクトがある場合、.settings/このアプローチはおそらくあなたが探しているものではありません。私たちのプロジェクトには常に同じ.settingsファイルがあります。

ソース

于 2013-02-13T13:17:42.693 に答える
0

私があなたの質問を正しく理解していれば、あなたは次のことを望んでいます:

  1. 同じ checkstyle 構成を共有するすべてのチーム メンバー
  2. 変更後、すべてのチーム メンバーが最新バージョンの構成で自動的に

私の推測では、構成が変更されるたびに、構成を手動でEclipseにインポートしていると思います。

ファイルを直接 Eclipse にインポートする代わりに、リモート構成ファイルを使用するように Eclipse を構成できます。

日食チェックスタイル設定

構成は、Eclipse の下のすべてのプロジェクトに適用され、最新の状態になります。プロセス全体については、チームに一般的な Checkstyle ルールを使用する で説明されています。これには、すべてのチーム メンバーが Eclipse を 1 回セットアップする必要があります。

一方、 mavenを使用している場合は、maven-eclipse-plugin を使用して、使用する checkstyle ファイルを記述できます。maven プロジェクトを eclipse にインポートするだけで、構成の準備が整います。

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.8</version>
<configuration>
    <additionalBuildcommands>
        <buildcommand>net.sf.eclipsecs.core.CheckstyleBuilder</buildcommand>
    </additionalBuildcommands>
    <additionalProjectnatures>
        <projectnature>net.sf.eclipsecs.core.CheckstyleNature</projectnature>
    </additionalProjectnatures>
    <additionalConfig>
        <file>
            <name>.checkstyle</name>
            <location>${URL}/eclipse-checkstyle.xml</location>
        </file>
    </additionalConfig>
</configuration>
....

Maven 構成の詳細については、次の記事Maven Checkstyle and Eclipseを参照してください。

于 2013-02-15T14:45:46.420 に答える