Currently I am using a JVM argument when launching my program for it to find the JavaFX libraries like so :
java -javaagent:lib/aspectjweaver-1.9.5.jar -javaagent:lib/spring-instrument-5.2.3.RELEASE.jar --module-path lib/javafx-sdk-13.0.2/lib --add-modules=javafx.controls -jar target/Some_Service-1.0.jar
My POM.xml's plugins section is extremely simple. Aside from the Docker and Launch4j plugins I only have this :
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
Is there a way to tell Maven to bundle that whole lib directory (which contains the JavaFX libraries and aspectJ/spring instrument java agents) right in the jar? Doing this would solve the issue of having to carry that lib folder around everywhere I deploy my app! Thanks!
******EDIT******
I messed around with the spring boot maven plugin options and unfortunately my jar still doesn't contain my folder :
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<folders>
<folder>lib</folder>
</folders>
<agent>lib/aspectjweaver-1.9.5.jar</agent>
<agent>lib/spring-instrument-5.2.3.RELEASE.jar</agent>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
******EDIT 2******
I just found an awesome library that eliminates the need for the -javaagent parameters altogether by having you load them programmatically at runtime instead. It looks like the very presence of AspectJ and Spring-Instrument on my classpath is all it needs too! Check it out : https://github.com/subes/invesdwin-instrument.
All I need now is to somehow bundle the JavaFX runtime into my jar instead of referring to it externally using a command line argument.