将FXML文件保留在/src/main/java中
每当我将FXML文件放入将FXML文件保留在/src/main/java中,java,maven,Java,Maven,每当我将FXML文件放入/src/main/java目录时,它们似乎在编译过程中没有被包含到最终的OSGi jar中。我想Maven会从那里删除它们,因为它认为FXML文件应该只驻留在/src/main/resources目录中。有没有办法阻止Maven这样做(即,让他们留在那里) 编辑1 目前我找到的唯一解决方案是: <build> <plugins> .... <plugin> <artifactId>maven-resour
/src/main/java
目录时,它们似乎在编译过程中没有被包含到最终的OSGi jar中。我想Maven会从那里删除它们,因为它认为FXML文件应该只驻留在/src/main/resources
目录中。有没有办法阻止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>
....
maven资源插件
2.7
复制资源
生成源
复制资源
${basedir}/target/classes/
src/main/java
**/*.fxml
**/*.css
然而,据我所知,在
…
节点中,还有另一种更短的实现方法,即不使用额外的插件。如何改用较短的方法?默认情况下是src/main/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>
。。。
com/company/projectname
src/main/java/com/company/projectname
真的
其中,
是包含资源文件(在您的例子中是xml文件)的源包,
是您希望资源驻留的目标。如果您同意将这些资源放在jar的根路径中,则可以省略
。您可以提供一个示例,说明如何包含所有fxml文件吗?