Добавьте файлы .mf & .xml в каталог META-INF внутри встроенного EAR Maven - PullRequest
4 голосов
/ 24 ноября 2010

У меня есть произвольные файлы .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).

Любая помощь приветствуется и будет великолепна. Thnx.

nacef

Ответы [ 3 ]

2 голосов
/ 24 ноября 2010

Попробуйте использовать плагин ресурсов, как описано здесь: http://maven.apache.org/plugins/maven-resources-plugin/examples/copy-resources.html

1 голос
/ 26 ноября 2010

Я понял. Спасибо Джифф. Я действительно использовал плагин 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 сначала выполняет фазу «проверки», поэтому копирование выполняется перед упаковкой уха. Это было успешно.

0 голосов
/ 27 июня 2014

Я добавлю эту дополнительную информацию для тех, кто сталкивается с этой проблемой, используя IBM Rational Application Developer (RAD) для создания файлов политики и привязки для развертывания на WebSphere Application Server (WAS).

В нашем случае мы сгенерировали файлы привязки политики (policyAttachments.xml и wsPolicyServiceControl.xml), используя инструменты RAD для вложений набора политик. По умолчанию они выгружаются в папку META-INF в корне проекта EAR. Если есть удобный способ изменить это поведение по умолчанию, чтобы всегда помещать его в приложение / META-INF, я не сталкивался с этим. Но вышеописанные методы прекрасно работают в RAD с m2e для локального запуска и создания EAR.

Вот раздел моего pom, используемый для копирования этих файлов:

     <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>
...