2011-08-12 70 views
1

我已经配置了manifest.mf文件来添加这里提到的custome属性: http://twit88.com/blog/2008/02/20/maven-adding-custom-attributes-and-build-timestamp-to-manifest/maven测试阶段的清单文件

我面临的问题是,条目填充在 classes/META-INF中的manifest.mf文件中。但是test-classes/META-INF中的manifest.mf文件仍然没有用值替换变量。

对于运行测试,我需要生成测试资源,但test.class/META-INF中的manifest.mf文件未填充用于测试目标。

任何人都可以请建议一种方法来配置manifest.mf文件的测试?

请注意,我已经尝试为maven-antrun-plugin添加“generate-test-resources”阶段,但它没有奏效。

谢谢。

回答

1

构建一个与将投入生产不同的测试二进制文件是一个坏主意。如果您在清单中有配置,请考虑将其移动到不属于已编译代码的配置文件中。然后你可以有你的配置文件的测试和生产版本。

编辑:据我了解,你基本上是试图单元测试你的pom.xml。如果我是你的话,我不会打扰你,特别是如果我正在测试一个不会被编译的归档文件(你的测试资源的清单文件)的一部分的文件的内容。 但是,您试图解决的问题是,您需要筛选测试资源,并通过明确声明测试资源并将筛选设置为true来实现这一目标。

<testResources> 
    <testResource> 
     <directory>src/test/resources</directory> 
     <filtering>true</filtering> 
.... 

如果你正在使用maven 2.1或更高版本,你可以跳过antrun的东西,只是用$ {} maven.build.timestamp代替。

+0

感谢Buhb,实际上我有构建版本和日期在清单中填充,并有一个测试方法来检查这些领域。当我运行mvn测试时,它会检查测试类/ META-INF中的清单,而不是将类/ META-INF作为Maven运行测试资源的测试。所以当测试版本正在进行时,我需要在测试类中为manifest.mf填充相同的属性。任何想法如何做到这一点? – popcoder

+0

非常感谢Buhb ...它的工作...... :) – popcoder

相关问题