Problema: Necessidade de alterar o diretório padrão dos fontes de aplicação web (js, css, jsp,…) de um projeto Maven de “src/main/webapp/” para “context/”
Solução: Definir a configuração warSourceDirectory para o plugin “maven-war-plugin”
Problem: Change standard directory for web application sources on a maven project from “src/main/webapp/” to “context/”
Solution: Define the config warSourceDirectory for the “maven-war-plugin” plugin
Ferramentas envolvidas: Eclipse, NetBeans, M2Eclipse (plugin maven para eclipse)
Descrição:
O padrão para códigos de fonte de aplicação web (js, css, jsp,…) é “/src/main/webapp” como descrito em http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html,
porém existem casos em que se mostra necessário alterar a localização, como por exemplo na minha empresa, que usar como padrão o diretório “context/”.
Quando trabalhamos com um projeto web devemos definir o packaging como war “<packaging>war</packaging>”, quando isso é feito o maven já sabe que terá que usar o plugin “maven-war-plugin” para trabalhar com esse projeto, assim devemos nos preocupar em configurar as propriedades do plugin, como descrito em http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html,
porém existe uma pequena confusão entre webappDirectory e warSourceDirectory, para que o NetBeans e o M2Eclipse(Eclipse) reconheçam esse diretório Web Pages/Web Resources é necessário que <warSourceDirectory> seja especificado,como no exemplo a seguir:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1-alpha-1</version>
<configuration>
<!--warSourceDirectory>src/main/webapp/</warSourceDirectory-->
<warSourceDirectory>context/</warSourceDirectory> <!--Atencao: path relativo, sem barra no inicio -->
</configuration>
</plugin>
</plugins>
</build>
Dessa forma o projeto ficará independente de IDE, podendo ser aberto no NetBeans ou importado no Eclipse.
Para atualizar as configurações de projeto do eclipse se baseando no pom.xml clique com o botão direito no projeto > Maven > Update Project Configuration
//!\ ATENÇÃO: Caso existam declarações de <resources> aprontando para algum diretório, no escopo build, estes serão enviados para diretórios diferentes do desejado, pois uma vez já enviados os arquivos o maven não os envia novamente