2016-06-25 10 views
-1

まったく同じパッケージ構造で、2つのMavenプロジェクト(A & B)でクラス "User.java"が定義されているという奇妙な状況があります。 私のMavenプロジェクトは、両方ともA & B. に依存していますが、プロジェクトの 'User.java'には余分なフィールドがあります。 私は常にプロジェクトAから 'User.java'を使用するようにしたいと思っていますが、残念ながらプロジェクトBからは常に選択されています。特定のパッケージ/プロジェクトからあいまいなクラスをインポートする方法

特定の/希望のプロジェクト?

+2

できません。あなたはクラスローダーの慈悲に満ちています –

+2

これは本当に悪い考えです。 2つの定義を1つに調整し、現在使用している2つのプロジェクトの依存関係にします。 –

+0

はい、私はそれに同意します。しかし、私のシステムには、AのUser.javaがBのUser.javaをオーバーライドしていることを示す方法がある場合、私は考えていました。 – Stephen

答えて

1

私は通常、「しないでください」という質問には答えませんが、この場合は例外を作成します。

これはREALLY BAD IDEA TMです。

指摘されているとして、あなたは人々の異なるグループが、本番環境の設定とプロビジョニングのために責任がある場合は特に、あなたは少し絶対的なコントロールを持っている上RUNTIMEクラスパス、のなすがままにされています。

この問題を解決して解決するための時間は、昨日です。これは一度も起こることは許されてはいけません。これを続行するだけで、今後も継続して頭痛や説明がつかず、デバッグが難しい障害につながります。

建築家(s)は関与を取得し、いずれかの

  1. を例AccountingUser & SalesUserため、Userクラスの両方の名前を変更します。合法的に2種類のユーザーが存在する場合には、Userのままにしておいてください。または
  2. 2つの定義を調整し、共通のサポートコードと一緒にそれを独自のライブラリに引き出し、両方のプロジェクトをそれに依存させます。
関連する問題