Maven不会复制非java文件

时间:2011-11-29 17:04:05

标签: java maven-2 maven

我有一个包含以下内容的pom.xml文件:

<sourceDirectory>${basedir}/src/main/test</sourceDirectory>
<outputDirectory>${basedir}/src/main/bin </outputDirectory>

${basedir}/src/main/test内我有一些不包含任何.java文件的文件夹。当我开始编译时,它们不会被复制到${basedir}/src/main/bin目录。

仅移动.java文件(编译后)并存储在右侧文件夹中。

有人帮我解决这个问题而不使用任何插件吗?

我试过

<resources>
        <resource>
            <filtering>false</filtering>
             <directory>${basedir}/src/main/test/scenarios</directory>
             <includes>
                <include>*.xml</include>
             </includes>
             <targetPath>${basedir}/src/main/bin/scenarios</targetPath>
        </resource>

        <resource>
            <filtering>false</filtering>
             <directory>${basedir}/src/main/test/sut</directory>
             <includes>
                <include>*.xml</include>
             </includes>
             <targetPath>${basedir}/src/main/bin/sut</targetPath>
        </resource>

    </resources>

但它不起作用。有什么问题?

2 个答案:

答案 0 :(得分:14)

如果它们不是java文件,则应将它们移动到src/main/resources和/或src/test/resources目录。这是存储非java文件的maven约定。

您的另一个选择是使用maven-resources-plugin

  <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.3</version>
        </plugin>
    </plugins>
    <resources>
        <resource>
        <directory>src/main/test</directory>
            <includes>
                <include> <the_files_you_want_to_include></include>
            </includes>
        </resource>
    </resources>

您还有另一种选择是使用maven-antrun-plugin并执行ant任务来手动复制文件。

答案 1 :(得分:1)

您可以使用maven resources插件将src / main / test添加为资源目录。有关基本信息,请参阅http://maven.apache.org/plugins/maven-resources-plugin/examples/resource-directory.html;有关仅包含某些文件的信息,请参阅http://maven.apache.org/plugins/maven-resources-plugin/examples/include-exclude.html