Usando Maven usando o layout de diretório não padrão
Pergunta
Estou tentando aplicar o Maven a um projeto existente que já possui uma estrutura de diretório em vigor. Tudo o que posso encontrar na pergunta anterior é o seguinte.
No entanto, meu requisito é mais detalhado. Por favor, veja abaixo a estrutura do diretório:
<root dir>
|
+--src-java
|
+--src-properties
|
+--WEB-INF
Eu sei que poderíamos ter algo como
<build>
<sourceDirectory>src-java</sourceDirectory>
...
</build>
Mas sourceDirectory
é apenas para o código -fonte Java, se não me engano.
Para a estrutura acima, como eu a declaro em pom.xml
? Mover o diretório é minha última opção agora.
Solução
Eu acho que você precisa ter algo semelhante a abaixo.
Vendo WEB-INF
, Suponho que você queira construir uma guerra. Plugin de guerra do MAVEN faz isso. Você precisará configurar isso um pouco, pois a estrutura da pasta não é padrão - por exemplo, você pode precisar especificar o local do web.xml usando webXml
propriedade. Estes são documentados no página de uso.
<build>
<sourceDirectory>src-java</sourceDirectory>
...
<resources>
<resource>
<directory>src-properties</directory>
</resource>
</resources>
...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warSourceDirectory>WEB-INF</warSourceDirectory>
...
</configuration>
</plugin>
</plugins>
</build>
Outras dicas
Você pode alterar a estrutura de diretório padrão declarada no Super Pom substituindo -os em seu pom.
Para o seu exemplo, por exemplo
<sourceDirectory>src-java</sourceDirectory>
<resources>
<resource>
<directory>src-properties</directory>
</resource>
</resources>
O MAVEN copiará todos os recursos para o arquivo JAR. Se você deseja incluir a Web-Inf no frasco, seria melhor movê-lo para o diretório de recursos especificado. Caso contrário, você deve copiá -lo por conta própria (com plugins Maven) para o diretório de destino - suponho.
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
A partir de aqui.