2017-01-25 3 views
2

Ich führe Komponententests in Intellij 14.1.2 mit dem Gradle Plugin durch. Ich habe externe Konfigurations- und Testdaten, die in einer Reihe von Verzeichnissen (Verzeichnis für jedes env) in der Umgebung spezifisch sind. Ich möchte die Konfiguration und die Daten über den Klassenpfad laden.setting classpath für gradle task/runconfig in intellij

in Eclipse würde ich nur das env-spezifischen Pfad für die Lauf-config hinzufügen und die Konfiguration speichern unter:
zum Beispiel
'Test-XYZ-UAT1'.

In intellij, so scheint es, meine Anwendung Config-Classpath mein ‚Modul‘ Classpath gebunden ist: https://www.jetbrains.com/help/idea/2016.3/run-debug-configuration-application.html how to add directory to classpath in an application run profile in intellij idea?

..welche ist schon schlimm genug, aber für die Gradle configs betreibe ich nicht einmal die Möglichkeit haben, um das Modul classpath hinzuzufügen.

Run/Debug-Konfigurationen Fenster haben keinen:
'Use Classpath von mod ...'
Abschnitt.

Frage:
Wie kann ich den Classpath der config festgelegt, wenn eine Gradle Aufgabe im Intellij läuft?

..und wenn mir jemand sagen könnte, wie man eine Anwendung bekommt, führen Sie die Konfiguration der spezifischen Klassenpfade aus, die noch besser wäre. (bitte sagen Sie mir, ich vermisse etwas Ingenius über Intellij ..)

Antwort

0

Basierend auf ziemlich viel Forschung und Versuch und Irrtum, hier ist die Lösung, die für meine Kotlin basierte Spring Boot-Projekt funktioniert.

Hintergrund:

My Frühlings-Boot-Projekt läuft Konfiguration ist so konfiguriert, Run Gradle Aufgabe anstelle der Standard-IDEA bauen als Vor Startkonfiguration (siehe Screenshot unten) zu verwenden.

enter image description here

My Frühlings-Boot-Projekt verwendet src/main/resources/application.properties für JPA und Protokollierungseigenschaften.

gradle build verwendet die folgenden Ausgabeverzeichnisse für den Build. Dies sind die standardmäßigen Ausgabeverzeichnisse für die Großbuchstabenentwicklung für ein Kotlin-Projekt.

  • build/classes/kotlin/main für die wichtigsten Klassendateien.
  • build/classes/kotlin/test für die Testklassendateien.
  • build/resources/main für die Hauptressourcendateien. Hier wird application.properties während eines Builds kopiert.

Als ich dieses Projekt innerhalb IDEA auszuführen versuchte oben mit der Laufzeitkonfiguration, wäre es im Frühjahr Boot-Start-up scheitern, weil es nicht application.properties in der Classpath finden kann. Als ich den Klassenpfad inspizierte, der während des Anwendungsstarts verwendet wurde, fehlte build/resources/main.

Meine Lösung

Verwenden Sie die Informationen aus: Gradle Goodness: Delegate Build And Run Actions To Gradle In IntelliJ IDEA IDEA bauen und Ausführung Gradle zu delegieren.

Wenn IDEA so konfiguriert ist, dass Build und Ausführung an Gradle delegiert werden, sollten die Haupt- und Testmodule wie folgt konfiguriert werden: Wählen Sie auf der Registerkarte Pfade die Option Projekt-Kompilierungsausgabepfad erben aus.

Verwandte Themen