18

(重要な場合、これらは Java Android プロジェクトです)

プロジェクトAはライブラリ プロジェクトです。

プロジェクトBはAに依存しています。私だけでなく他の人がプロジェクト全体を管理しやすいように、Aはgit サブモジュールを介してBに含まれています。

つまり、 ABの両方に変更を加えたい場合、次のようになります。

  1. プロジェクトAそのもの
  2. プロジェクトB
  3. A のBのサブモジュール、それをA 'と呼びましょう。同じコード、同じプロジェクト名、ディスク上の異なる場所。

理想的には、次の条件を満たすことができるようにしたいと考えています。

  1. A自体を Eclipse 内で直接変更できる。
  2. Bを変更してビルドし、A'を参照して、すべて Eclipse 内で実行できるようにします。
  3. インポートされたプロジェクトとしてA'を実際に必要としない/変更する必要はありませんが、jar ファイルを自動的にビルドしてBで参照できるようにしたいと考えています。

私が試したこと:

  1. AA' の両方を単純にインポートする: Eclipse は同じ名前の 2 つのプロジェクトをインポートできないため、機能しません。サブモジュールであるため、単純に名前を変更することもできません。git update ごとにそれを行う必要があり、受け入れられません。
  2. A'への外部ライブラリ参照を追加し、Eclipse から完全に除外します。実際にはそれほど悪いソリューションではありませんが、ant機能する前にコマンド ラインから ( を使用して) 少なくとも 1 つの外部ビルドが必要です...最も便利ではありません.
  3. ソース リンクの実行: A (およびその後A' ) には複数のソース フォルダーがあるため、最もクリーンではないため、 A内のソース フォルダーを追加または削除するたびに更新する必要があります。jarを直接使用したいだけです。

antこれをすべて Eclipse に保持する方法はありますか、または #2 のようなことを行う必要がありますが、A'を呼び出す外部ビルド コマンドを追加する必要がありますか?

4

5 に答える 5

0

セットアップが正しいかどうかわかりません:

プロジェクト A : src
+ /projecta.jar (プロジェクト A のバイナリ)

プロジェクト B : /src
+ /lib/Project A/サブモジュールとしての src
+ /lib/projecta.jar (プロジェクト A のバイナリ)

..今、AA' を変更してコンパイルし、プッシュ/コミットする前にテストしたいと思いますよね?
B に jar を入れるだけでよろしいですか、それともプロジェクト B 内のソースを A' に更新する必要がありますか?

最初のケース: ant ファイルをプロジェクト A でコンパイルし、それを B にデプロイします。その ant ファイルはプロジェクト a の一部ではありません。ローカルでの回避策です (Eclipse の ant ビューにあると便利です)。

スケッチ:

<property name="projectb.libdir" value="..."/> set appropriate place in project B

<javac fromdir="./src" todir="./build" ...><fileset ... /></javac>

<jar /> from build to projecta.jar

<copy /> projecta.jar to projectb.libdir

別の方法は、Eclipse で .jardesc を作成することです。これにより、右クリックで「jar の作成」を実行できます。

それがあなたのやりたかったことですか?

于 2013-09-29T16:18:59.730 に答える
0

これは Android 専用なので、Android ライブラリを調べましたか?

私の場合、アプリの無料 (B) バージョンと有料 (C) バージョンがあります。どちらも共通のコード ベース (A) を共有しています。Eclipse では、A を Android ライブラリにし、B と C の両方がこのライブラリを使用し、3 つすべてが個別の git リポジトリです。このセットアップでは、A で行った変更が B と C で自動的に利用可能になり、プロジェクトごとに 1 つのコード ベースを維持するだけで済みます。派手なビルド スクリプト/構成はありません。

このようなシンプルさがあなたの求めていたものだと思いますか? 質問を誤解していた場合はお詫び申し上げます。

于 2013-09-26T23:47:33.453 に答える
0

Eclipse Mars Milestone 5 (4.5.0M5) はマルチプロジェクトをサポートしています。サブフォルダーから「既存のプロジェクト」をインポートするだけです。

于 2015-02-26T14:45:51.290 に答える
-1

プロジェクト ビルド システムを使用して、依存関係を追跡するだけです (これは、その目的に適しています)。

gradle(望ましい私見ですが、どちらがコンテキストに適しているかを確認してください) またはを使用することをお勧めしますmaven。どちらもサブプロジェクトをうまく処理でき、Eclipse 構成を生成できます。

于 2013-05-02T05:33:10.507 に答える