Maven: Как добавить файлы в корень внутри EAR с помощью maven-ear-plugin? - PullRequest
3 голосов
/ 15 октября 2010

Мне нужно добавить 2 файла XML внутри EAR, сгенерированного с помощью maven-ear-plugin.

К сожалению, я не нашел способа добавить произвольный файл в EAR; документация плагина, которая гласит: «Плагин EAR поддерживает следующие артефакты: ejb, war, jar, ejb-client, rar, ejb3, par, sar, wsr и har».Нет ничего для добавления обычного файла.

org.apache.maven.plugins maven-ear-plugin 2.3.1 foo foo 1.4 lib $ {parent.groupId} foo-web / foo org.richfaces.framework richfaces-api commons-lang commons-lang

Большое спасибо заранее.

Ответы [ 3 ]

9 голосов
/ 15 октября 2010

В maven-ear-plugin 2.4.2 вы можете использовать элементы конфигурации earSourceDirectory, earSourceExclude и earSourceIncludes, чтобы объявить дополнительные файлы для включения в EAR.

По умолчанию вы просто размещаете этифайлы в папку $ {basedir} / src / main / application.

2 голосов
/ 27 июня 2013

У меня была такая же проблема. У меня был файл ejb.properties в каталоге ejbs / src / main / resources и я использовал earSourceDirectory и earSourceIncludes, чтобы вытащить файл из каталога ejbs в ухо. Однако он не надежно поместил его в каталог lib. EJB не находит его в. он ищет его в каталоге lib.

Чтобы это исправить, я создал каталог src / main / application / lib и создал ссылку на файл ejb.properties. Затем я удалил earSourceDirectory и включил свойства. Теперь, когда я делаю пакет mvn clean, он автоматически извлекает файл свойств и помещает его в каталог lib уха.

0 голосов
/ 03 августа 2016

Извините, что опоздал на @wishihadabettername, но у меня недавно была та же проблема, больше я не мог переместить включаемые файлы, потому что они были в другой папке, чем earSourceDirectory. Я прочитал maven-ear-plug-ear ear: документацию для ear и подумал о том, как переместить мою папку release в корень уха.

По умолчанию привязывается к фазе жизненного цикла: пакет.

и

workDirectory - каталог, в который копируются ресурсы во время сборки.

Значение по умолчанию: $ {project.build.directory} / $ {project.build.finalName} .

Тогда мой подмодуль pom.xml выглядит так:

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <executions>
        <execution>
            <id>copy-resources</id>
            <phase>prepare-package</phase> <!-- before package phase -->
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <!-- Work Directory of Ear plugin -->
                <outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory> 
                <resources>
                    <resource>
                        <!-- my resource folder -->
                        <directory>release</directory>
                        <filtering>true</filtering>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

Надеюсь, что это поможет людям отныне

...