web-dev-qa-db-ja.com

JarライブラリをIntelliJ Idea SBTに追加する方法Scalaプロジェクト?

IntelliJ Idea SBTを作成しましたScalaのようなプロジェクト Heiko Seebergerの記事 で説明しています。

このプロジェクトで使用するJarライブラリ(joda-time)を追加したいのですが。これを行う方法?それらをプロジェクトの/ libに置くだけでは効果がありません。 Ideaのプロジェクトツリーで[外部ライブラリ]を右クリックすると、[新規>]がグレー表示されます。

29
Ivan

プロジェクトのIntelliJ Ideaウィンドウで、[ファイル] >> [プロジェクト構造] >> [ライブラリ]に移動します。ライブラリオプションをクリックすると、2つのペインが表示されます。左端のペインの上部にある緑色の「+」ボタンをクリックします。

31
Ivan

これを行うためのより良い方法は、アンマネージ依存関係をbuild.sbtに追加し、依存関係管理の一部をIDEに任せないことです。

UnmanagedBaseおよびunmanagedJarsタスクを定義する方法の詳細については、 http://www.scala-sbt.org/release/docs/Library-Management.html を参照してください。

12
mcyalcin

これをbuild.sbtで宣言するだけです

unmanagedJars in Compile += file(Path.userHome+"/Your-Jar-Path/Full-Jar-Name.jar")

必要なjarは、External Library> unmanaged-jars> Full-Jar-Name.jarに表示されます。これは、jarファイル(提供されたパス内)が変更された場合にも変更されます。

6
zero

Intellijのアイデア:

  • ファイル>プロジェクト構造>ライブラリ

Netbeansの場合:

  • ファイル>プロジェクトプロパティ>ライブラリ

Eclipseの場合:

  • プロジェクトを右クリック>プロパティ> Javaビルドパス>ライブラリ
6
svlzx

マルチモジュールSBTプロジェクト(Intellij 2017.3.4、Scala 12.2.4、sbt 1.1.1)の場合、承認されたソリューションは再起動またはプロジェクトの更新までしか機能しませんでした。実際、「プロジェクト設定->モジュール->依存関係」、「+」、「JARまたはディレクトリ」の場合、「モジュールXはSbtからインポートされます。構成に加えた変更はすべて再インポート後に失われる可能性があります」という警告が表示されます。

可能な回避策
@ zeroの提案は、私にとって次のように機能しました。

  1. JARをプロジェクトのlibディレクトリに配置します。
  2. _build.sbt_のlazy var baseSettings = Seq( ... )内にunmanagedJars in Compile += file("YourPath/ProjectBla/lib/controlsfx-8.40.14.jar")という行を追加します。
  3. まだ運がない? SBTツールウィンドウのモジュールのsbt設定unmanagedBaseunmanagedSourceDirectories(など)ポップアップコマンド「値の表示」と「検査」を数回呼び出してみてください。どういうわけか、それはうまくいくかもしれません。

    Eugene Yokotaの回答から sbt-Assemblyで管理されていないJARを最終的なファットJARに追加するにはどうすればよいですか 別のオプション(私は試していません)は、個別のlibディレクトリを追加することです必要な各モジュールに。

うまくいけば、これらの手順は問題を解決するか、少なくともデバッグに役立ちます。

1
Tupolev._

プロジェクトのルートパスにlibディレクトリを作成し、そこにJARを貼り付け、sbt reloadを実行してプロジェクトを閉じ、再度開きます。 IntelliJ 2018.2.4およびSBT 1.0で動作します

0
Radu Ciobanu