Плагин Maven war: archiveClasses без ресурсов архивации - PullRequest
5 голосов
/ 18 июля 2011

В maven-war-plugin есть опция archiveClasses, которая упаковывает все классы в один файл .jar, а затем создает файл .war с этим файлом в папке lib /.

Мне нужно сделать то же самое, но оставить файлы ресурсов в каталоге классов, чтобы они по-прежнему были доступны из пути к классам, но их было легко изменить.

Какой самый простой способ сделать это?

Ответы [ 4 ]

4 голосов
/ 23 июля 2012

Может быть, вы можете попытаться настроить папку ресурсов как WebResource в конфигурации плагина.

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <archiveClasses>true</archiveClasses>
        <webResources>
            <resource>
                <directory>src/main/resources</directory>
                <targetPath>WEB-INF/classes</targetPath>
                <filtering>true</filtering>
            </resource>
        </webResources>
    </configuration>
</plugin>
2 голосов
/ 10 марта 2016

Ответ в одну строку: В maven-war-plugin отсутствуют опции для исключения ресурсов из банки, созданной с использованием флага archiveClasses.

Возможноеи самый простой способ решить эту проблему - переместить файлы, находящиеся в каталоге src/main/java/resources, в каталог src/main/java/webapp/WEB-INF/classes.

0 голосов
/ 08 ноября 2013

вы можете сделать это, чтобы решить проблему:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <warName>${project.war.name}</warName>
        <warSourceExcludes>**/*.class</warSourceExcludes>
        <archiveClasses>true</archiveClasses>
    </configuration>
</plugin>
0 голосов
/ 18 июля 2011

Вы просто должны быть в состоянии указать, где находятся эти ресурсы.Обычно он ищет ресурсы в src / main / resources, но если они вам нужны в дереве исходного кода java, вы можете попробовать:

<resources>
    <resource>
        <directory>${basedir}/src/main/java</directory>
        <filtering>true</filtering>
        <includes>
            <include>*.xml</include>                
        </includes>
    </resource>
</resources>
...