1

まず第一に、Google ドキュメントからのライブラリ プロジェクトに関する私の知識のほとんどと、この記事の Android ビルド システムの詳細な説明があります。

設定

私の Eclipse ワークスペースには、Android ライブラリをインポートするクライアント プロジェクトがいくつかあります。各クライアントは異なるライブラリ セットをインポートし、一部のライブラリは相互にインポートします。

各クライアントには独自の Subversion リポジトリがあり、すべてのライブラリは 1 つの Subversion リポジトリにあります。

すべてがうまくビルドおよび実行されます。

問題

  1. クライアント プロジェクトとライブラリは同期して進化していません。一部のクライアント プロジェクトでは、古いリビジョンのライブラリが必要です。Eclipse で多くのプロジェクトを作成する必要があります。一部のライブラリ プロジェクトは、ライブラリ リポジトリの異なるリビジョンから複数回作成する必要があります。
  2. 単一のライブラリ プロジェクトでは、クライアントが実際にそれらのいずれも使用しない場合でも、そのすべてのリソースがクライアント プロジェクトに配置されるため、多くのライブラリが必要です。私はここにいますか?
  3. 同じライブラリの異なるリビジョンをワークスペースにチェックアウトします。Eclipse では、複数のライブラリ プロジェクトをインポートすることはできません。これは、Eclipse プロジェクトが .project ファイルで同じ名前を持っているためです (Eclipse は、2 つ目のプロジェクトをインポートしようとすると不平を言います)。
  4. エクリプス??

編集

Jarek Potiukの答えが機能します。しかし、それはポイント 3 で説明した問題を解決するだけです。Eclipse で各ライブラリ プロジェクトを個別に作成する必要があります。

インポートされたライブラリ プロジェクトごとに Eclipse でプロジェクトを作成する必要がないソリューションはありますか? 誰かがantで実用的な解決策を持っていますか?

4

1 に答える 1

2

対処方法を説明しましょう。Mercurial サブレポを使用していますが、あなたのケースでは svn:externals を使用してもまったく同じであるはずです。

0) 前提条件: .project および .classpath ファイルがプロジェクトと共にリポジトリにコミットされていることを確認してください....

1) メイン プロジェクトには「subrepo」ディレクトリがあり、そこにすべての外部ライブラリを (サブディレクトリとして) 保持します。Mercurial では subrepo を使用して行われます。svn では、svn:externals 構成を使用して特定のバージョンのライブラリ (SVN タグまたはブランチ URL) にリンクできるはずです: http://svnbook.red-bean.com/en/1.0 /ch07s03.html

2)最終的な効果は、メインプロジェクトをチェックアウトすると、サブレポディレクトリの依存ライブラリが自動的にチェックアウトされることです。ここまでは順調ですね。

3) Eclipse では、ライブラリがリンクされていないため、メイン ディレクトリに障害が発生します..... . "Use default location" のチェックを外し、subrepo のライブラリを参照します. Eclipse は既存の .project からプロジェクトを構成します. このプロジェクトを Android の依存プロジェクトとして追加し、場合によっては Eclipse でも追加します... 注意! 一意の名前は変更されません.project 名ですが、Eclipse が複数のライブラリ プロジェクトをチェックアウトできるようにします.....

4)プロジェクトがコンパイルされたら、すべて(.projectおよび.classpathファイルを含む)をリポジトリにコミットします...

5) 誰かがプロジェクトをチェックアウトするたびに、ライブラリは適切なバージョンでチェックアウトされ、必要な追加の手順はポイント 3) を繰り返すことだけです - サブレポの新しい Java プロジェクトを追加し、プロジェクトに一意の名前を付けます... それだけです (とにかく、Eclipse は内部的に一意の名前ではなく subrepo/library ディレクトリを参照します)

于 2011-06-29T22:21:42.747 に答える