Como pular testes ao usar o reator Maven?
-
27-09-2019 - |
Pergunta
Estou trabalhando em um projeto de vários módulos do Maven.Quero construir um determinado módulo e pular os testes de unidade para acelerar o processo de construção.
Eu tentei o seguinte:
mvn reactor:make -Dmake.folders=search -Dgoals=package,-DskipTests
mvn reactor:make -Dmake.folders=search -Dgoals=package -Dmaven.test.skip=True
No entanto, isso não tem efeito algum.Alguma pista?
Solução
Sua primeira linha parece a ideia certa, mas em vez de -Dgoals
você deveria usar -Dmake.goals
.
De página de exemplos de plugins de reator:
O plug -in do reator lança uma segunda cópia do Maven para fazer sua mágica.Esta cópia do MAVEN não tem necessariamente todas as bandeiras e opções que você passou para sua primeira cópia do MAVEN, incluindo o sinalizador -Debug, propriedades do sistema e -Dskiptests.
Você pode passar argumentos adicionais ao Maven Skiled, tratando -os como objetivos com -dmake.goals, como este:
mvn reactor:resume -Dmake.folders=barBusinessLogic -Dmake.goals=install,-DskipTests
Em outras palavras, os "objetivos" são apenas parâmetros extras da linha de comando passados para o Maven Skiled;Eles não precisam necessariamente ser "objetivos".
Se você quiser se tornar realmente chique, pode preferir apenas o plug -in de reator no modo -dmake.printonly, descrito acima.Isso imprimirá o comando que o plugin teria usado para construir, mas você pode ajustar essa linha de comando para o conteúdo do seu coração!
Outras dicas
Dada a estrutura do projeto
/
A/pom.xml
B/pom.xml
C/pom.xml
D/pom.xml
E/pom.xml
pom.xml (parent pom file that includes A,B,C,D,E modules)
Semelhante ao seu
mvn reactor:make -Dmake.folders=C,D,E -Dgoals=package -Dmaven.test.skip=True
Embora eu não tenha certeza se minha abordagem faz exatamente o que o plugin do reator faz, mas achei a seguinte abordagem funcionou bem o suficiente para mim
mvn -pl=C,D,E -DskipTests=true package
Você já tentou incluir a opção -Dmaven.test.skip = true (Observe o caso) para o seu argumento da linha de comando que você está executando? Como Java, Maven é sensível ao minúsculo. Mas, geralmente, você pode abandonar a = parte verdadeira e isso também deve fazer com que os testes sejam ignorados.