Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将FXML文件保留在/src/main/java中_Java_Maven - Fatal编程技术网

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

将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

每当我将FXML文件放入
/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文件吗?