Добавьте файлы .mf и .xml в каталог META-INF внутри EAR, созданного Maven.
-
28-09-2019 - |
Вопрос
У меня есть произвольные файлы .xml и .mf, которые мне нужно добавить в папку META-INF внутри самого уха.Сборка осуществляется с использованием maven2.2.1.Простое добавление этих файлов в ${basedir}/src/main/application/META-INF/ работает нормально, но не соответствует моим потребностям.Есть ли другой способ сделать это?Я пытался:
<build>
<resources>
<resource>
<directory>G:/WS/vermeg/ear2/XML's</directory>
<targetPath>META-INF</targetPath>
</resource>
</resources>
</build>
но это не добавляет мои XML-файлы в сам EAR.
Я также попробовал:
<configuration>
<earSourceDirectory>G:\WS\vermeg\ear2\XML's\</earSourceDirectory>
...
</configuration>
эти команды добавляют мои файлы внутрь уха, но НЕ в META-INF внутри EAR (myEar.ear/META-INF).
Любая помощь приветствуется и будет здорово.Спасибо.
насеф,
Решение
Попробуйте использовать плагин ресурсов, как описано здесь: http://maven.apache.org/plugins/maven-resources-plugin/examples/copy-resources.html
Другие советы
Я понял.Спасибо Джгифф.Я действительно использовал плагин maven-resources-plugin, указав, где находятся мои XML-файлы, и что я хочу, чтобы они были скопированы в папку META-INF проекта на этапе «проверки», это важно.Мой помпон сейчас выглядит примерно так:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>G:\WS\vermeg\ear2\src\main\application\META-INF\</outputDirectory>
<resources>
<resource>
<directory>G:\WS\vermeg\ear2\XML's</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
При выполнении чистой установки mvn maven сначала выполняет фазу «проверки», поэтому копирование выполняется до упаковки Ear.Это было успешно.
Я добавлю эту дополнительную информацию для всех, кто сталкивается с этой проблемой при использовании IBM Rational Application Developer (RAD) для создания файлов политики и привязки для развертывания на WebSphere Application Server (WAS).
В нашем случае мы создали файлы привязки политик (policyAttachments.xml и wsPolicyServiceControl.xml) с помощью инструментов RAD для вложений наборов политик.По умолчанию они сохраняются в папке META-INF в корне проекта EAR.Если и есть удобный способ изменить это поведение по умолчанию, чтобы всегда помещать его в application/META-INF, то я с ним не сталкивался.Но описанные выше методы прекрасно работают в RAD с m2e для локального запуска и создания EAR.
Вот раздел моего пома, используемый для копирования этих файлов:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}\src\main\application\META-INF\</outputDirectory>
<resources>
<resource>
<directory>${basedir}\META-INF</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>