web-dev-qa-db-ja.com

Mavenパッケージは機能しますが、Intellijのビルドは失敗します

MavenリポジトリにローカルjarへのMaven依存関係を持つJDK 1.7プロジェクトがあります。

Intellijを使用してプロジェクトをビルドできません。シンボルが見つからないというエラーが発生します(シンボルはローカルjarからパッケージをインポートするクラスです)

しかし、「mvn package」を使用してプロジェクトを正常にビルドできます。

私はすでに多くの時間を費やしてソリューションを探してきました。

  • 無効化されたキャッシュ
  • 「mvn clean install」ローカルjar依存関係
  • IntellijのMaven構成で「スナップショットの自動ロード」にマークされています
  • Intellijのrempoted maven
  • シンコナイズド

このエラーは数回前に発生しましたが、通常はIntellijを閉じたり、「mvn clean install」を行ったりするだけでうまくいきました。

助けてください。

70
Yarin Miran

.imlファイルとpomが競合しており、問題の原因であることがわかりました。

11
Yarin Miran

私はこれが遅いことを知っていますが、mvn idea:ideaは問題を解決します。

100
Rahul Jha

すべての.imlとPOMを削除してください。次に、POMをコピーしてプロジェクトに再度貼り付け、再度開いてインポートし直します。

24
masoodg

他の誰かを助けるかもしれない場合に備えて、これが同様の問題(IntelliJではなくmvnのプロジェクトビルド)を抱えていたときに検索で最初に出てきたので、いくつかのヒントを追加します。

私がこれを持っていたとき、それはWindowsとMacで異なる修正でした。

Macでは、ItellijIDEA/Preferences/Build、Execution、Deployment/Build Tools/Maven/Maven Home Directoryに移動し、バンドルされたMavenではなく、個別にインストールされたMavenを使用するように設定しました。ビルドの問題はすべてなくなりました。

Windowsでは、SSLに関連するidea.logで例外が表示され、プロジェクトツリーにはJavaしかありませんでした。他のサイトを見ると、IntelliJは独自のprivateシステム1の代わりにJDK(私の場合は、まったく同じJDKバージョンが既にインストールされていますが)システムJDKには、IntelliJプライベートJDKにはない企業Nexusサーバーのキーストアに証明書がインストールされています。 Nexusからファイルを取得しようとしたときにスローされました。このための解決策は、IntelliJを終了し、IDEA_JDKと呼ばれる環境変数を設定して、適切な証明書を持つインストール済みのJDKを指すようにし、IntelliJを再起動しました。 。

14
rrjp

Maven ReImportは以下のように私のために働いた...

enter image description here

6
Ram Ghadiyaram

私はこの会話にかなり遅れていることを知っていますが、誰かがこの問題に遭遇した場合に備えて、これを投稿したかっただけです。これが発生するもう1つの理由は、正しいリポジトリを参照していないためです。 Intellijは、独自のMavenリポジトリからではなく、デフォルトでjarのバンドルバージョンを選択します。接続されたリポジトリが正しいリポジトリであることを確認します。

3
Optimiser

IDEは、ビルド時にMavenの独自のバンドルコピーを使用します。ターミナル上のMavenがIDEと異なる場合、それらを同じにする必要があります。

GOTO(Macの場合)-IntelliJ Idea-> Preferences-> Build、Execution、Deployment-> Build Tools-> Maven Mavenホームディレクトリのパスを設定しますターミナルから使用するMavenのパスを見つけるには、コマンドmvn -versionそしてそれは、dirパスを含む詳細の束を出力するはずです。それをMavenホームディレクトリに入れます。

安全のために、JDKの場所についても同じことができます。

====そのような問題を引き起こす可能性のあるその他の事柄===

Mvnパッケージまたはmvnクリーンインストールビルドを実行する場合、IDEキャッシュを使用して何かを行う必要があります。これは通常、このようなエラーの助けになります->

ファイル->キャッシュの無効化

3
Akshayraj Kore

私の場合、私のIMLは同期していないので、特定のモジュールのIMLを削除し、Mavenオプションの下でunignoreプロジェクトを選択してIMLを再作成します

3
Bikas Katwal

「シンボルが見つかりません」は、intellijが「依存関係」を解決できないことを意味します。そのため、[分析]-> [依存関係の分析]をクリックして[分析範囲]を選択すると、[依存関係分析]を強制できます。

1
dgm

コマンドプロンプトからコマンドを実行します:mvn idea:ideaおよびプロジェクトを右クリック->メニューから依存関係を再インポート

1
Ram Maddela

プロジェクトを閉じ、ルートpom(フォルダーだけでなく、pomファイル自体)をクリックして再度インポートしました。

0
Togepi

同じ問題がありました。に行きます:

ファイル->プロジェクト構造->モジュール。モジュールを選択し、「Dependencies」タブで、すべてのMaven依存関係が追加されていることを確認します。

アイデアエディタで同様の問題について警告されていることを確認するには、[依存関係]タブから[ソース]に切り替えて、srcをソースとしてマークします。

0
Denorm

言及されていない可能性もあります。 com.Sun.*からライブラリをインポートする場合。また、この問題が発生します。

プログラムはideで実行すると機能します。これらのクラスはcom.Sun.*にあり、すべてjre/libディレクトリにあり、実行時にロードされます。ただし、mvn packageを実行すると、Java 1.6(これらのライブラリはある意味で廃止されました)。あなたは付け加えられます

<build>
        <plugins>
            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                    <compilerArguments>
                        <verbose />
                        <bootclasspath>C:/Program Files/Java/jdk1.8.0_161/jre/lib/rt.jar</bootclasspath>
                    </compilerArguments>
                </configuration>
            </plugin>
        </plugins>
    </build>

cootclasspathをrt.jarの独自のパスに置き換えることを忘れないでください

Access restriction: The type XXX is not accessible due to restriction on required libraryで詳細を検索できます。

0
poorguy

キャッシュを無効にして、Mavenをインストール済みバージョンに変更しようとしましたが、何も機能しませんでした。

新しいプロジェクトを閉じて再作成すると解決しました。

0
Anubha

同じ問題がありました。 Ideaの設定でMavenバージョンを3.0.5から3.0.4に変更しましたが、すべて正常に動作します。なぜそれが私を助けるのか分からない。

0
Boris Mitioglov

この簡単な手順は、リスクなしで約1分かかります。

  • IntelliJを閉じます
  • 削除[〜#〜] only [〜#〜] .idea/*、*。iml、.settingsなどのIntelliJ固有のファイル。POMも削除することが推奨されましたが、そうではありません必要な私見。
  • 次に、File> New> Project from existing Sourcesを使用して、IntelliJでプロジェクトを再作成し、手順に従います。複数のプロファイルや(同じプロジェクト)をインポートしないでください。
0
tjm1706

上記のすべてを喜びなく試してみました。しかし、私は最終的にそれを機能させるために1つのことをしました:

C:\ Users\.IntellijJIdea2018.2に移動し、フォルダー全体を削除しました。

IntelliJのすべての設定とキャッシュが削除されます。プロジェクトをゼロから再インポートする必要がありましたが、以前は単純な削除と再インポートは機能していませんでしたが、これでようやく正常に機能するようになりました。

0
Emma

ここにある他の回答の多くの貴重なヒントは、私の問題に対して有効なソリューションを追加したいだけです

最近、プライベートMavenリポジトリの使用を開始し、常にmvn -s settings.xml Mavenコマンドラインを呼び出すとき。 IntelliJはもちろんプライベートリポジトリについては知らないので、少し助けが必要です。

[設定]-> [ビルド、実行、展開]-> [ビルドツール]-> [Maven]に移動し、[ユーザー設定ファイル]オプションをオーバーライドします。

enter image description here

0

.ideaフォルダーを削除してIDEを閉じます

IDEを再び開き、.IDEAフォルダーが以前に削除されたため、新規インポートを行うプロジェクトをインポートします

外部ライブラリモジュールを確認し、必要な依存関係が入力されていない場合は、IDEでmaven settings.xmlの場所が正しく指定されているかどうかを確認します

0

Gradleを使用している場合は、以下のコマンドを試してください。これで問題が解決しました

gradle cleanIdea idea

0
Liju John