2017-02-15 1 views
1

Ich bin relativ neu zu Maven + JavaFX und ich versuche, eine JavaFX ausführbare JAR-Datei mit dem com.zenjava Maven-Plugin zu erstellen.JavaFX Maven Plugin: com.zenjava - So kopieren Sie externe Ressourcen

Ich wurde im Anschluss an diese Anleitung als Referenz:
https://www.youtube.com/watch?v=wbjW8rYlook

Ich habe die folgende Ordnerstruktur für mein Projekt:
enter image description here

Jetzt versuche ich die Config jfx:jar während Maven Build zu laufen und konnte eine JAR-Datei erstellen, aber die Ressourcen, die ich brauche, werden nicht in den Ordner target/jfx/app kopiert.

enter image description here

Grundsätzlich mag ich die gesamten src/main/resources Ordner target/jfx/app/resources kopieren. Wie erreiche ich das?

Einige Informationen:
Der src/main/resources/ Ordner verschiedene Arten von Dateien enthalten, die ich während der Laufzeit benötigen, (Excel-Dateien, pdf, htmls ...) und nicht nur Eigenschaftsdateien.

Vielen Dank im Voraus.

============================================== ==========================
UPDATE:
Yuri-M-Dias Antwort geholfen.

Ohne eine andere Einstellung zu ändern, habe ich es geschafft, dies zu tun, indem Sie einfach mit meiner pom-Datei zu aktualisieren:

<build> 
    <resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <targetPath>../jfx/app/resources</targetPath> 
     </resource> 
    </resources> 



    <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.5.1</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>com.zenjava</groupId> 
      <artifactId>javafx-maven-plugin</artifactId> 
      <version>8.7.0</version> 
      <configuration> 
       <mainClass>me.iamkenos.bayonetta.MainApp</mainClass> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

Dies funktioniert auf jeden Fall, aber ich bin mir nicht sicher, ob dies der beste Weg ist, da ich hatte um es ein bisschen zu betrügen, indem Sie "../" in <targetPath>../jfx/app/resources</targetPath> verwenden, wird auf andere mögliche Antworten für die Zwischenzeit warten.

Antwort

1

Sie können die Ausgabeordner von Maven mithilfe des Schlüsselworts resources in bestimmten Ordnern steuern. Zum Beispiel auf meinem Projekt:

<resources> 
     <resource> 
      <directory>src/main/java/view</directory> 
      <targetPath>view</targetPath> 
     </resource> 
    </resources> 

Ich bin gezwungen, den Inhalt des java/view Ordners Ausgabe an die target/classes/view in diesem Fall, da es ist, wo meine JavaFX Bilder und fxmls sind. Das können Sie wahrscheinlich auch für den Ordner jfx/app/resources tun.

Zum Kopieren des Ordners können Sie sich die official maven recommendation ansehen.

+0

Danke für den Tipp! Ich habe es zur Arbeit gebracht, aber ich bin mir nicht sicher, ob das, was ich getan habe, die bestmögliche Lösung war, die ich machen kann. (Siehe Update zu meiner Frage). Ich werde auf weitere mögliche Antworten warten, bevor ich diese akzeptiere. Wie für den angegebenen Link, habe ich tatsächlich dieses eine frühere, aber ich bin nicht in der Lage, den größten Teil des Inhalts von 'Maven-Ressourcen-Plugin' wie ID, Phase, Konfiguration zu verstehen. Ich wünschte, sie würden mehr Erklärungen zu diesem Link geben, um den Erstsemestern zu helfen. Danke nochmal! – iamkenos

Verwandte Themen