2012-05-08 13 views
0

私は開発者がWindows PCを持ち、もう1人がMacBookを持っている小さな開発環境でEclipseを使用しています。 Subversionリポジトリを使用してコードを共有し、Mavenを「外部ツール」として使用します(m2eプラグインを使用しない)。混合Windows/Macチーム環境でのEclipse修正.classpathのレスリング

私たちはそれぞれ、2つのシステム上の.jarファイルへのパスを解決するのに効果的なM2_REPO変数を持っています。最近では、Mavenにソースとjavadocsをプルダウンするように指示するコマンドを実行しました。

mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true 

はそれ以来、私は私のMac-使用して友人にnuissanceある私の.classpathでいくつかの非常にWindows中心の参照を参照してください。

<classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.6.4/slf4j-api-1.6.4.jar" 
    sourcepath="M2_REPO/org/slf4j/slf4j-api/1.6.4/slf4j-api-1.6.4-sources.jar"> 
    <attributes> 
     <attribute value="jar:file:/C:/Users/John/.m2/repository/org/slf4j/slf4j-api/1.6.4/slf4j-api-1.6.4-javadoc.jar!/" name="javadoc_location"/> 
    </attributes> 
</classpathentry> 

downloadSourcesとdownloadJavadocsパラメータを除去し、彼らはのmaven-日食 - プラグインの私のプラグイン設定で偽だということを検証した後でも、私の.classpathファイルを削除し、mvn eclipse:eclipse私はまだ、これらの不要な資料を参照してくださいreran .classpathファイルに置かれます。

誰もこの問題の良い解決策を見つけましたか? javadocファイルへの参照でM2_REPO変数を使用するようにMavenに指示する設定を見落としたことはありますか? >あなたの.classpathファイルを削除して再作成する。この後依存性管理に

を有効にする - > Mavenの - プロジェクトを右クリックして

+0

以下の回答に記載されている回避策の他に、mvn eclipse:eclipseプラグインがこれを行うのを防ぐ方法を見つけましたか? – Spiff

答えて

3

私のチームでは、Eclipseの.settingsまたは.classpathファイルをソース管理にコミットしません。最初にプロジェクトをチェックアウトするときには、クラスパスを構築するためにm2eを使用しています(一度に一度だけ実行するように、Eclipseのゴールで行いました)、開発者がどのプラットフォームを使用していてもすべてが正しく設定されています。私たちにはWin 7、Mac、そして様々なLinuxの味を使っている人がいます。ビルドマシンはLinuxです。

+1

それは完璧な意味合いがあります。 Mavenはそれらを削除して再作成します。 – phatfingers

0

はしてMavenプロジェクトの依存関係の管理を可能にしてください。

+0

私は外部ツールとしてMavenを使用しています。 Eclipse用のm2eプラグインの機能のようです。私のシステムには存在しません。 – phatfingers

0

「mvn eclipse:eclipse」を使用するのではなく、M2EclipseをプロジェクトサイトまたはEclipse Marketplaceからインストールします。それはあなたのためのすべてのlinkupsを処理し、絶対パスを埋め込むことはありません。

(私は常にバージョン.classpathと.settings /)

0

あなたのリポジトリにjavadocを持っている場合は、MavenのEclipseプラグインは、常にあなたのクラスパスに追加します。

-DdownloadJavadocs = trueオプションは、eclipseプラグインにダウンロードするよう指示します。プラグインにクラスパスに含めるかどうかを指示するものではありません。あなたのクラスパスにそれらをもう必要としない場合は、すべて-javadocを削除する必要があります。をローカルリポジトリから削除するか(またはロケートリポジトリを削除してください)。

1

私はMavenを使用していません。私は唯一の開発者です。私はWindows PCとMacを持っています。私にとっては、この "小さな"ソリューションはうまく動作します。両方のシステムのパスが一致するようにシンボリックリンクを作成します。

C:\> mklink /d "C:\Users\xxx\android-sdks" "C:\Users\xxx\AppData\Local\Android\android-sdk" 

これはWindowsマシンで行いました。コマンドはmklink/d(ディレクトリの場合)newDir existingDirです。少なくともWindows 7で動作します。多分これが助けになるでしょう。

関連する問題