我的问题非常类似于“Maven doesn't copy untracked resources while releasing”。我有测试资源,这些资源不受版本控制。由于测试是发布的一部分:在没有这些资源的情况下执行失败。
如何告诉Maven将这些未版本化的测试资源复制到target / checkout / target / test-classes /中。我真的不想跳过测试。这些测试资源不会进入公共vcs,因为他们拥有Web服务的凭据。
答案 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的哲学家......确实你必须不是:)。
maven和maven-release-plugin旨在提供可重复的构建。如果你依赖于无版本的,比如说无法控制的资源,你无法确保你的构建能够提供相同的结果。
为了以后的目的,可以轻松加密凭据: