Estou aprendendo a usar o Maven e tenho observado que todos os materiais existentes ensinam a configurar um projeto básico, o quickstart, “do zero”. Isso é bom, mas neste momento seria melhor se eu conseguisse “adaptar um projeto existente ao Maven”.
Como fazer isso?
No Ant, além do build.xml, existe o arquivo de properties. Existe isso também para o Maven?
Existe o conceito de “script de build” para Maven?
"O build.xml do maven é o pom.xml"
Sim, você pode customizar a forma que é feito o deploy do projeto, como é construido, dependências, através do pom.xml de cada projeto.
Para migrar para uma arquitetura maven é uma tarefa razoavelmente fácil,
necessário adequar o projeto dentro da estrutura (tbm customizado) src/main/java e arquivos, src/main/resources. Para projetos web a estrutura é diferente, dá uma olhada na documentação para cada caso.
se o nome do pacote do seu projeto for: br.com.empresa
no groupId do maven insira br.com.empresa
Depois, copie as classes correspondente a cada pacote.
Seja qual for o tipo de <packaging> que eu escolha - jar, war ou ear - o Maven gera um archive contendo arquivos .class. alguns diretórios, o pom.xml etc. Não “embute” nenhum .java.
Sei que isso é o suficiente para que determinada aplicação rode num container. Mas, e seu eu quiser incluir no meu “processo de build” a verificação de código-fonte, com ferramentas como o PMD, o Checkstyle e o Findbugs? Essas ferramentas não precisam de .java para rodar/verificar?
uma boa coisa é você simplesmente modificar a estrutura de diretórios do seu projeto. Siga as convenções do Maven, cujas principais são basicamente as seguintes:
pom.xml na raiz do projeto
src/main/java <- Seu código Java entra aqui
src/main/resources <- Seus recursos que serão incluidos no pacote a ser gerado
src/test/java <- Seus testes unitários e de integração
src/test/resources <- Seus arquivos de recursos
Se for uma aplicação web, você também vai querer ter um diretório
src/main/webapp <- que vai corresponder ao diretório aonde todas as páginas, WEB-INF e META-INF se encontrarão
Dica: use o plugin do Maven para Eclipse e crie um projeto web padrão maven usando um dos estereótipos de sua preferência. Em seguida, dê um duplo clique sobre o pom.xml. Surgirá uma nova página com varias abas dentro dela. Clique na “effective pom”. Nela vão estar todas as propriedades do Maven com seu valor padrão. É uma excelente fonte para descobrir quais os padrões adotados pela ferramenta.
neste caso eu não chamaria de “refatorar”, porque você só vai mudar a pasta em que está salvando seu código fonte. É possível evitar esta mudança de local, pra isto, basta que você siga a dica que te passei de verificar as configurações padrão do Maven, mas pra evitar amolação no futuro, eu moveria os diretórios sim.