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

Мне нужно добавить 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

Спасибо заранее.


person wishihadabettername    schedule 15.10.2010    source источник


Ответы (3)


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

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

person Eugene Kuleshov    schedule 15.10.2010

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

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

person Fernando de la Cuadra    schedule 27.06.2013

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

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

и

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>

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

person Cavva79    schedule 03.08.2016