2017-05-20 2 views
0

ich mein JavaFX/TornadoFX Projekt in ein gradle Projekt konvertieren, habe ich alle meine Ressourcen in einer Paket genannt Ressourcen ... alles funktioniert, aber wenn ich bauen will das Projekt die Pakete , die keinen Quellcode enthalten, wird nicht in den jar/build-Ordner verschoben.Intellij ohne jede Datei in Build

Da ich meine fxml bin Laden, CSS und Schriftart-Dateien aus dem Paket, ich müsste intellij sagen, irgendwie dieses Paket schließen ...

Irgendwelche Ideen?

Ich habe versucht, das Paket als Ressourcen zu schaffen Markierung aber ohne Erfolg

Ich habe auch versucht ein tornadoFX Projekt erstellen und kopieren Sie dann die Dateien mit der Ressource-Paket ... hat auch nicht funktioniert.

ich eine zufällige Klasse in der Ressource-Paket versucht zu schaffen und nur die Klasse in das Gefäß kopiert wurde/build Ordner

Gibt es eine Möglichkeit, wie alles im Modul enthalten IntelliJ zu sagen, nicht nur die Quelle Code?

EDIT: Zum besseren Verständnis für mein Problem habe ich einige Screenshots

dies ist, wie mein src dir wie folgt aussieht:

Src file

aber wenn ich es bauen (es nicht enthält die Ressource Paket ...):

Out file

Antwort

2

Die Konvention ist, dass standardmäßig nur Kompilierte Klassen in den Quellordnern werden in den Erstellungsordner kopiert. Sie sollten beliebige Dateien, die in Ihrem Build enthalten sein sollen, in src/main/resources platzieren.

Um auf Dateien zugreifen zu können, die aus dem Klassenpfad Ihrer Anwendung in src/main/resources gestellt wurden, sollten Sie sie über den vollständigen Pfad beziehen. So wäre src/main/resources/myfile.txt über /myfile.txt erreichbar.

Sie können Ordner unter dem Ressourcenordner erstellen, so dass src/main/resources/views/MyView.fxml über /view/MyView.fxml zugänglich wäre.

Wenn Sie die Paketstruktur Ihrer Quelldateien spiegeln, können Sie nur über den relativen Pfad auf eine Ressource für eine bestimmte Ansicht oder ein Fragment zugreifen. So können Sie für die Datei com.example.myapp.MyViewsrc/main/resources/com/example/myapp/MyView.fxml erstellen. Es würde automatisch für den Delegierten fxml oder über resources["MyView.fxml"] innerhalb MyView abgeholt werden.

Verwandte Themen