2017-05-10 3 views
1

Ich habe die folgende Projektstruktur:IntelliJ: Source root ist nicht richtig behandelt

ModuleName (=Content Root) 
    |---src 
    | |---com 
    |   |---company 
    |    |---file1.java 
    |    |---file2.java 
    |---test-src 
    | |---com 
    |   |---company 
    |    |---test.java 
    |--- .classpath 
    |--- .project 

Das zunächst ein Eclipse-Projekt war, und ich brauche es in IntelliJ zu importieren.

Jedes Mal, wenn ich versuche, es zu importieren, wird IntelliJ jedoch vollständig mit dem Stammordner der Quelle verwechselt.

an den Source-Java-Suche Dateien, ich die folgenden Fehler in der Paketdeklaration erhalten:

package com.company; 

Error: Package name 'com.company' does not correspond to the file path 'src/com.company'

und

Error: Package name 'com.company' does not correspond to the file path 'test-src/com.company'

ich markierten richtig 'src' und ‚test- src 'Ordner als Source-Roots in IntelliJ. Sie denkt jedoch immer, dass diese Ordner Teil der Pakethierarchie sind.

Ich habe dieses Problem in 3 von etwa 30 verschiedenen Modulen. Alle Module sind gleich strukturiert, und ich sehe keinen Grund, warum IntelliJ für die meisten von ihnen funktioniert, aber für diese drei fehlschlägt.

Wie kann ich das beheben?

+0

Überprüfen Sie, dass kein anderer Ordner über oder unter als Quelle root markiert ist, nur 'src'. Wenn das Problem weiterhin besteht, teilen Sie bitte das [Minimale, vollständige und überprüfbare Beispiel] (http://stackoverflow.com/help/mcve), – CrazyCoder

+0

. Oben sind keine Quellordner vorhanden. Auch das Erstellen eines überprüfbaren Beispiels ist nicht möglich: Wenn ein neues IntelliJ-Projekt erstellt und die Module von Grund auf neu importiert werden, funktioniert es oft ordnungsgemäß. Aber nach einiger Zeit (manchmal Minuten, manchmal Stunden oder Tage) bricht es plötzlich und das Problem erscheint wieder. Ich bin mir ziemlich sicher, dass es ein Fehler in IntelliJ ist, aber ich habe keine Ahnung, wie es ausgelöst wird und daher habe ich keine Ahnung, wie ich es umgehen kann. – maja

+0

Hinweis: Ich habe bereits mehrere Tage damit verbracht, dieses Problem zu beheben. Das Löschen von IntelliJ-Caches, das erneute Installieren von IntelliJ, das erneute Erstellen des gesamten Moduls von Grund auf, die Verwendung eines anderen PCs führen immer zum gleichen Problem. Viele Male funktioniert es am Anfang, aber nach einiger Zeit bricht es wieder.Aber wieder - nur für einige spezifische Module - die überwiegende Mehrheit von ihnen ist in Ordnung. – maja

Antwort

1

Der Vollständigkeit halber - wenn jemand das gleiche Problem mit einem ähnlichen Setup läuft in, hier ist die Lösung:

Ein weiteres Modul (es sich lassen RUFMODUL B) eine Abhängigkeit von der .jar-Datei durch das Modul erzeugt hatte A. Dies funktioniert normalerweise einwandfrei, und die erforderliche .jar-Datei kann im lib-Ordner von Modul B gefunden werden. Das Problem war, dass Modul B .classpath-Datei (die verwendet wurde, um die Module in IntelliJ zu importieren) enthielt den folgenden Eintrag (ich nehme an, es von Eclipse zu einem frühen Punkt erzeugt wurde):

<classpathentry kind="lib" path="lib/ModuleA.jar" sourcepath="/ModuleA/" />

Nun scheint es Wie IntelliJ wurde von diesem Quellpfadeintrag extrem verwirrt (da er nicht auf einen gültigen Speicherort verweist) und dies hat irgendwie die Packungsstruktur von Modul A beeinflusst. Was daran interessant ist (und es zu einem großen Problem gemacht hat, das eigentliche Problem zu debuggen und zu finden), ist, dass der Fehler sich nicht in Modul B manifestiert hat, wo die problematische .classpath Datei gefunden wurde (weil IntelliJ keine Warnung anzeigt die Quellen, die aus der Datei .classpath importiert wurden, waren ungültig), aber eher im übergeordneten Modul A.

Durch Entfernen des Quellpfadeintrags (oder durch Zeigen auf einen gültigen Speicherort, z. B .: lib/ModuleA.jar) wurde das Problem behoben.

Verwandte Themen