Файл манифеста для фазы тестирования maven - PullRequest
2 голосов
/ 12 августа 2011

Я настроил файл manifest.mf для добавления атрибутов обычного, как указано здесь: http://twit88.com/blog/2008/02/20/maven-adding-custom-attributes-and-build-timestamp-to-manifest/.

Проблема, с которой я сталкиваюсь, состоит в том, что записи заполняются в файле manifest.mf внутри классы / META-INF. Но файл manifest.mf внутри test-classes / META-INF по-прежнему содержит переменные, которые не заменяются значениями.

Для запуска тестов мне нужны сгенерированные ресурсы теста, но файл manifest.mf внутри test-classes / META-INF не заполняется для целей теста.

Может кто-нибудь предложить способ настройки файла manifest.mf для тестов ????

Обратите внимание, что я уже пытался добавить фазу "generate-test-resources" для maven-antrun-plugin, но это не сработало.

Спасибо.

1 Ответ

1 голос
/ 12 августа 2011

Создание тестового бинарного файла, отличного от того, что пойдет в производство, - плохая идея.Если у вас есть конфигурация в манифесте, рассмотрите возможность ее перемещения в файл конфигурации, который не является частью вашего скомпилированного кода.Затем вы можете иметь тестовую и рабочую версию вашего конфигурационного файла.

Редактировать: Насколько я понимаю, вы в основном пытаетесь выполнить модульное тестирование вашего pom.xml.Я не стал бы беспокоиться об этом на вашем месте, особенно если я тестирую содержимое файла, который в любом случае не будет частью скомпилированного архива (файл манифеста ваших тестовых ресурсов).Однако проблема, которую вы пытаетесь решить, заключается в том, что вы хотите фильтровать свои тестовые ресурсы, и вы делаете это, явно объявляя свои тестовые ресурсы и устанавливая фильтрацию в true.

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

Если вы используете maven2.1 или более поздней версии, вы можете пропустить материал antrun и просто использовать вместо него $ {maven.build.timestamp}.

...