2015-09-15 4 views
0

Я пытаюсь получить изображения в своем веб-приложении Maven в соответствии с профилем, выбранным во время сборки. Но я продолжаю получать всю папку всех профилей до такой степени, что мне нужны изображения.Использование плагина Maven WAR с профилями

<build> 
    <finalName>user-interface</finalName> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <configuration> 
       <webResources> 
        <webResource> 
         <directory>src/main/profile/webapp/</directory> 
         <targetPath>images</targetPath> 
        </webResource> 
       </webResources> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

<profiles> 
    <profile> 
     <id>user</id> 
    </profile> 
    <profile> 
     <id>dev</id> 
    </profile> 
</profiles> 

Как это исправить? Изображение по умолчанию - banner.jpg, и оба профиля имеют соответствующие изображения в правильном порядке. Внутри src/main/profile/webapp/ есть 2 папки user и dev с каждой папкой с изображениями и папкой с изображениями banner.jpg.

ответ

2

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

<build> 
    <finalName>user-interface</finalName> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <configuration> 
       <webResources> 
        <webResource> 
         <directory>src/main/profile/webapp/${banner.folder}</directory> 
         <targetPath>images</targetPath> 
        </webResource> 
       </webResources> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

<profiles> 
    <profile> 
     <id>user</id> 
     <properties> 
      <banner.folder>user</banner.folder> <!-- defines banner.folder property when the user profile is activated --> 
     </properties> 
    </profile> 
    <profile> 
     <id>dev</id> 
     <properties> 
      <banner.folder>dev</banner.folder> <!-- defines banner.folder property when the dev profile is activated --> 
     </properties> 
    </profile> 
</profiles> 
+0

Спасибо. Это отлично работает. Можете ли вы также объяснить, почему вы не можете получить идентификатор как идентификатор, а не свойство? –