2016-07-25 10 views
2

Ich versuche Dagger2 in Intellij 2016.1 (aber nicht mit Gradle) auf Ubuntu.Wie markiert man ein Verzeichnis als generiertes Test-Source-Root in IntelliJ?

Intellij schafft Dolch erzeugt Quellen in beiden ./out/production/<ProjectModule>/generated/ oder ./out/test/<ProjectModule>/generated_tests/ je nachdem, ob sie von einer Quelle oder Testverzeichnis generiert wurde, respectively.

Aber von dem, was ich erzähle, kann ich diese Verzeichnisse nur als sources root, test sources root oder generated sources root; Es gibt keine Option für generated test sources root, sagen wir.

Warum ist das wichtig? Weil die generierten Testquellen von meiner Testquellen abhängen. Wenn sie als generated sources root markiert sind, kann Intellij die Abhängigkeiten nicht finden.

Hinweis: Ich denke nicht, dass sie als test sources root markiert werden sollten, weil Intellij dann versucht, diese wieder zu kompilieren; es sei denn, es gibt einen Weg, dies zu verhindern, von dem ich nichts weiß.

Also gibt es eine Möglichkeit, dieses Verzeichnis als generated test sources root oder etwas Äquivalentes zu markieren?

Antwort

0

Dolch verwendet Annotationsverarbeitung, um Quellen während der Kompilierung zu generieren. IntelliJ hat eine spezifische Konfiguration für diese Funktion in Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors Wenn es aktiviert ist, fügt IntelliJ automatisch generierte Quellen zum Projekt hinzu.

Wenn die Annotationsverarbeitung aktiviert ist, kann ich sehen, dass generierte Testquellen sowohl als Test Sources Root als auch als Generated Sources Root markiert sind. Aber wenn ich versuche, beide Flags manuell zu setzen, funktioniert es nicht - ich bekomme die Flags Sources Root und Generated Sources Root.

Für mich sieht es wie ein Fehler aus.

+0

Ich habe diese Option aktiviert ist und es produziert Quellen erzeugt wird, wie ich in der Frage erwähnt, aber nicht, sie in dem Classpath enthalten. –

+0

Stellen Sie sicher, dass für die Annotationsverarbeitung das richtige Verzeichnis in 'Test sources directory' für Ihr Modul konfiguriert ist. Und dann habe ich bemerkt, dass IntelliJ Änderungen nicht im laufenden Betrieb entdeckt. Ich musste das Projekt aktualisieren. Vielleicht könnte das Wiedereröffnen von IDE helfen. –

+0

Immer noch nicht funktioniert. Ich habe eine Antwort darauf geschrieben, wie ich es für mich arbeiten ließ. –

0

Hier ist was für mich gearbeitet. Erstellen Sie ein Verzeichnis im Modul root namens generated und darunter haben zwei Simlinks zu <ProjectRoot>/out/production/<ProjectModule>/generated/ und <ProjectRoot>/out/test/<ProjectModule>/generated_tests/. Markieren Sie die erste als Ressource Root und die zweite als Test Ressource Root.

Ich erstellte das neue Verzeichnis und Simlinks, weil es erscheint Intiltij Auto-Markierungen <ProjectRoot>/out als Ausgeschlossen.

markierte ich das Verzeichnis als -Test Ressourcen Wurzel so dass IntelliJ nicht versucht, die Quelle zweimal auf die gleiche Klasse zu kompilieren. (Tipp: große Beschwerden vom Compiler.)

Am Ende funktioniert keine rote Squiggles und Auto-Vervollständigung.


Hinweis: Ich habe das generierte Quellverzeichnis von Intellij für das Modul nicht geändert. (Nun, ich habe versucht, eine andere Antwort, aber änderte es zurück.)

2

Um einen Dietrich als "generierte Testquellen root" zu markieren, öffnen Sie den "Projektstruktur" -Dialog unter Projekteinstellungen> Module und klicken Sie auf die kleine " P "neben Ihrem Ordner Ihrer Wahl und wählen Sie die Schaltfläche" Für generierte Ressourcen ".

Project Structure