gpt4 book ai didi

java - 将 FXML 文件保留在/src/main/java 中

转载 作者:行者123 更新时间:2023-12-02 04:46:04 26 4
gpt4 key购买 nike

每当我将 FXML 文件放入 /src/main/java 时目录,看起来它们在编译过程中没有被包含到最终的 OSGi jar 中。我想 Maven 会从那里删除它们,因为它认为 FXML 文件应该只驻留在 /src/main/resouces 中。目录。有没有办法阻止 Maven 执行此操作(将它们留在那里)?

编辑1
我目前找到的唯一解决方案是:

<build>
<plugins>
....
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>generate-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/classes/</outputDirectory>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.fxml</include>
<include>**/*.css</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

但是,据我所知,还有另一种更短的方法可以实现此目的,无需使用其他插件,在<build>...</build>中节点。我该如何使用更短的方法?

最佳答案

默认是src/main/resources用于资源文件。您可以使用maven resources插件来覆盖此行为。

这是一个例子。在你的pom.xml

...
<build>
<resources>
<resource>
<targetPath>com/company/projectname</targetPath>
<directory>src/main/java/com/company/projectname</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>

哪里<directory>是源包,其中包括资源文件(在您的情况下为 xml 文件)和 <targetPath>是您希望资源驻留的目标。您可以省略<targetPath>如果您同意将这些资源放在 jar 的根路径中。

关于java - 将 FXML 文件保留在/src/main/java 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29654913/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com