1

別の Java プロジェクトのソース ファイルに大きく依存する新しいプロジェクトを Scala で開始しています。最初は、そのプロジェクトで新しいパッケージ/モジュールを作成することを考えましたが、面倒に思えました。ただし、新しいプロジェクトで Java コードを複製したくありません。私が思いついた最善の解決策は、svn 外部依存関係を介して Java プロジェクトを参照することです。もう 1 つの解決策は、元のファイルから jar ファイルを作成することです。それをライブラリとして新しい Scala プロジェクトに添付します。ただし、これにより、最新の状態に保つことがより不便になります。どのルートが良いですか?

SVN 外部:

  • 更新が簡単
  • コミットしやすい
  • 不便なセットアップ

ライブラリとしてのjarファイル:

  • セットアップが簡単
  • 古いコードは活発に開発されていません (安定版、バグ修正のみ)
  • マルチステップ更新
  • 変更するには古いプロジェクトを開く必要があります
4

3 に答える 3

2

scala/java を混在させているかどうかは関係ありません。両方のプロジェクトが非常に異なっていて、リリース サイクルが異なる場合は、おそらく外部依存関係 (jar) を使用することをお勧めします。それ以外の場合は、sbt を使用して、2 つのプロジェクトを同じビルドのサブプロジェクトにすることができます (sbt ビルド ファイルでは、scala プロジェクトが Java プロジェクトに依存することになります)。または、それらが非常に絡み合っている場合でも、Java と scala の両方のソース ファイルを含む 1 つのプロジェクトを作成します。Sbt はそれを問題なく処理します。

Mavenもオプションです。

于 2013-01-23T17:13:55.170 に答える
2

Scala プロジェクトがあり、Java プロジェクトの一部に依存しています。私には、Java プロジェクトはバージョン番号を持つライブラリである必要があるように思えます。バージョン番号は、単に Scala プロジェクトによって参照されます。または、2 つのプロジェクト間で共有される部分は、ライブラリに分割する必要があります。Maven のようなビルド ツールを使用すると、使用されているバージョンが明確になります。その後、Java プロジェクトは個別に進化させることができます。または、Scala プロジェクトのために変更する必要がある場合は、新しいバージョンを公開し、破損が心配な場合は古いバージョンを他のコンテキストで使用し続けることができます。

私が考えることができる唯一の例外は、Java コード自体がコンパイル時に Scala プロジェクトに固有の何らかの方法で実際に処理されている場合です。たとえば、注釈処理のように。

SVN 外部を使用することが解決策になる可能性があります。ブランチとスナップショットを使用して、トランク上の Java コードを更新しても Scala プロジェクトが突然動作不能にならないように注意してください。

于 2013-01-23T17:05:00.003 に答える
0

Maven を使用して、scala/Java 混合プロジェクトを非常に簡単にセットアップできます。scala-maven-plugin を見てください。

https://github.com/davidB/scala-maven-plugin

Maven との統合が不十分なため、Eclipse ユーザーはあまり満足しないかもしれません。

于 2013-01-23T18:15:38.693 に答える