インポートクラス、IntelliJのは、BOOT-INFのプレフィックスを示し、関係しているように見えることはできません

uh_big_mike_boi:

私は依存プロジェクトから任意のクラスをインポートすることができない理由を教えための専門知識を持つ人はありますか?私は地元のMVNリポジトリへの私のマシンでビルドのいずれかの可能性や、私はすでに、同社の外部MVNリポジトリにパッケージ瓶からそれをダウンロードすることができ、プロジェクトからいくつかのクラスをインポートしようとしている - これは、JavaとMav​​enです。「外部ライブラリ」を見て、問題の瓶の下にすべてのクラスに「BOOT-INF.classes」接頭辞があることが問題になっているライブラリを展開するときに左「プロジェクト」ペインで、IntelliJの上で見ているとき、私は予告をしました。それは場合に役立ちます私は外部のリポジトリだけで罰金からすべてのspringbootクラスと他のすべてのクラスをインポートすることができるよが、それは、またspringbootプロジェクトです。

(「外部ライブラリ」の下の左ペインでIntelliJのプロジェクトビューの内側)

Mavenの:org.springframework.boot:春・ブート・スターターテスト:2.0.0.RELEASE

Mavenの:com.fasterxml.jackson.datatype:ジャクソン・データ型-jdk8:2.8.1

---ジャクソンコア-2.8.1.jar

------ com.faster.xml.jackson.core

------ com.faster.xml.jackson.core.async

........(その他のパッケージがリストされています)

Mavenの:com.mycompany.my.project:コンポーネント-2-1.0.0-SNAPSHOT

Mavenの:com.mycompany.my.project:コンポーネント-3-1.0.0-SNAPSHOT

--- com.mycompany.my.project:コンポーネント1.0.0-20181201.jar

------ BOOT-INF.classes

------ BOOT-INF.classes .com.mycompany.project.my.package.one

--------- MyClassOne

--------- MyClassTwo

------ BOOT-INF.classes .com.mycompany.project.my.package.one

------ BOOT-INF.classes .com.mycompany.project.my.package.one.alpha

------ BOOT-INF.classes .com.mycompany.project.my.package.one.bravo

アンディ・ウィルキンソン:

それはあなたが依存関係として春のブートアプリケーションを使用しようとしているように聞こえます。一般的にこのことを言えば、春ブートアプリケーションが依存関係として使用されるものではなく、warファイルのように、として推奨されていません。

春ブーツのドキュメントには、次のように述べています:

あなたのアプリケーションは、あなたが他のプロジェクトと共有したいというクラスが含まれている場合、推奨されるアプローチは、別のモジュールにそのコードを移動することです。別のモジュールは、アプリケーションや他のプロジェクトから依存することができます。

それはオプションではありませんならば、あなたは、アプリケーションのJARと依存関係として使用するのに適している1の両方を構築するためのプロジェクトを設定する必要があります。ドキュメントの同じセクションから:

上記の推奨としてあなたのコードを並べ替えることができない場合は、春ブーツのMavenとのGradleプラグインは依存関係として使用するのに適した別のアーティファクトを生成するように構成する必要があります。実行ファイルのアーカイブは、BOOT-INF /クラスで実行可能なJAR形式のパッケージアプリケーションクラスなどの依存関係として使用することはできません。実行可能なjarファイルが依存関係として使用される場合、それらが見つからないことをこれが意味。

2つのアーティファクト、依存性、実行可能なものとして使用することができるものを生成するために、分類器は、指定されなければなりません。この分類器は、依存関係として使用するためのデフォルトのアーカイブを残して、実行可能なアーカイブの名前に適用されます。

適切な設定は次のようになりますので、あなたは、Mavenを使用しています:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <classifier>exec</classifier>
            </configuration>
        </plugin>
    </plugins>
</build>

アプリケーションの実行可能な脂肪ジャーは今で公開されますexecクラシファイア。依存関係として使用することができ、通常のjarファイルが分類されていないだろう。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=221840&siteId=1