7

他のプロジェクトで使用できるライブラリを作成しようとしています。いくつかのことを行うためのいくつかの静的メソッドを持つ 1 つのクラスを作成しました。試してみたかったのですが、インポートした JAR ファイルを使用できません。

コードをアーティファクトとしてコンパイルし、JAR ファイルを「out」フォルダーから取得して、別のプロジェクトにコピーしました。その後、「プロジェクト構造」の「ライブラリ」タブに移動し、プラスボタンを押しました。JAR ファイルを見つけて選択した後、IDEA から依存関係を指定するように求められたので指定しましたが、コードで使用したい場合は指定できません。インポートすらできません。

ライブラリのクラスが認識されない

私のライブラリを無視する理由はありますか? ありがとう!

他のプロジェクトで使用できる IntelliJ IDEA で JAR ライブラリを作成するにはどうすればよいですか?

4

2 に答える 2

6

非常に一般的な依存関係管理の問題が発生しています。

IMO の本当の答えは、Maven、Ant、または Gradle などのビルド システムを使用することです (私なら Gradle を使います)。あなたがやろうとしているのは手動で、再現が難しく、脆弱です。

変更を加えるたびに、新しい JAR を作成するために手動の手順を実行する必要があります。そして、あなたは自分の依存関係を本当に理解していません。

ベスト プラクティスを実行するには、テストをコンパイルして実行する継続的インテグレーション サーバーに公開する実際のビルド システムが必要です。テストが正常に完了すると、JAR が Artifact サーバー (Nexus/Artifactory) に公開されます。

共有している人々は、JAR への依存関係を宣言することにより、ビルド システムを介して JAR を消費します。

于 2013-12-17T14:08:58.153 に答える
4

私の問題が何であるかを理解しました。ライブラリを作成したとき、私はそれをシンプルにしようとしていました。残念ながら単純すぎる。JARにコンパイルされたクラスを含むパッケージがありました。以下に示す構造:

foo
 |
 |_ MyLib.java 

ただし、作成された JAR ライブラリのクラスを使用するには、クラスをパッケージに配置する必要があります。つまり、私が持っている場合:

foo
 |
 |_bar
 |  |
 |  |_MyInnerLib.java
 |
 |_MyOuterLib.java

MyInnerLib からメソッドをインポートして使用することはできますが、MyOuterLib にはアクセスもインポートもできません。これは私が犯していたエラーでした。

于 2013-12-19T08:03:45.733 に答える