Maven: как разместить файл ресурсов вместе с jar?

У меня есть srcmainresourceslogback.XML-файл. Когда я бегу mvn package по умолчанию он помещается в банку. Как я могу заставить Maven поместить его рядом с jar, а не внутри?

Итак, я просто хочу, чтобы Maven скопировал ресурс в ту же папку, где будет jar.

3 ответов


не требуется определения плагинов, просто отредактируйте ресурсы сборки:

<build>
    <resources>
        <!-- regular resource processsing for everything except logback.xml -->
        <resource>
            <directory>src/main/resources</directory>
            <excludes>
                <exclude>logback.xml</exclude>
            </excludes>
        </resource>
        <!-- resource processsing with a different output directory
             for logback.xml -->
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>logback.xml</include>
            </includes>
            <!-- relative to target/classes
                 i.e. ${project.build.outputDirectory} -->
            <targetPath>..</targetPath>
        </resource>
    </resources>
</build>

ссылки:


вы можете создать ZIP-файл, содержащий оба, используя модуль сборки Maven.

вы также можете использовать в Maven-Antrun плагин или аналогично, чтобы поместить любой файл, который вы хотите, но идея одного артефакта на проект встроена глубоко в Maven internals, поэтому есть шанс, что он выследит вас в другом месте.


исключить этот файл: http://maven.apache.org/plugins/maven-resources-plugin/examples/include-exclude.html

а затем используйте плагин Maven Antrun для копирования файла.

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