如何在发布期间复制未版本控制的测试资源:执行?

时间:2013-12-11 09:40:58

标签: maven maven-release-plugin

我的问题非常类似于“Maven doesn't copy untracked resources while releasing”。我有测试资源,这些资源不受版本控制。由于测试是发布的一部分:在没有这些资源的情况下执行失败。

如何告诉Maven将这些未版本化的测试资源复制到target / checkout / target / test-classes /中。我真的不想跳过测试。这些测试资源不会进入公共vcs,因为他们拥有Web服务的凭据。

2 个答案:

答案 0 :(得分:0)

似乎有很多方法可以实现这一目标。一种方法是使用maven-resources-plugin和个人资料。 release-plugin在release:perform个人资料release-plugin期间设置。您只需将 maven-resources-plugin 添加到该配置文件(或由<releaseProfiles>激活的自定义配置文件中)。

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.6</version>
    <executions>
        <execution>
            <id>copy-resources</id>
            <phase>validate</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/test-classes</outputDirectory>
                <resources>
                    <resource>
                        <directory>${basedir}/../../src/test/resources/</directory>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

使用org.sonatype.oss:oss-parent与父disables <useReleaseProfile>有点不同,但使用sonatype-oss-release

答案 1 :(得分:0)

快速回复:

您不应包含未版本控制的资源。这不是Maven的哲学家......确实你必须不是:)。

旨在提供可重复的构建。如果你依赖于无版本的,比如说无法控制的资源,你无法确保你的构建能够提供相同的结果。

为了以后的目的,可以轻松加密凭据: