Найти classpath maven использует для запуска TestNG testcase

какие параметры maven я могу использовать, чтобы определить, с каким classpath maven работает тестовый случай testng?

3 ответов


вы не предоставили версию Maven, но, по крайней мере, в 3.x (и, возможно, также 2.x) вы можете запускать команды с параметром-X (debug). Таким образом, тестовый путь к классам распечатывается до запуска тестов.

mvn test -X

Я не мог отформатировать свой ответ в своем комментарии, поэтому отправив grepped версию здесь:

mvn test -X | grep "maven.dependency.classpath"

в общем, вы можете найти путь к классам, который использует maven, используя встроенный плагин зависимостей maven и build-classpath цель.

если вы хотите использовать classpath для компиляции и запуска теста, вам нужно выбрать test объем зависимостей. Эта область используется по умолчанию, но если вы хотите быть явным, вы можете установить ее с помощью -DincludeScope=test.

другие области применения включают в себя runtime, compile, provided и system.

в зависимости от того, как вы хотите, чтобы потреблять выход, вы можете играть с параметрами -Dmdep.outputFilterFile и -Dmdep.outputFile. The mdep.outputFilterFile упрощает синтаксический анализ вывода из скрипта и outputFile опция записывает в файл, вместо которого некоторые инструменты могут читать напрямую.

вот несколько примеров:

$ mvn dependency:build-classpath -DincludeScope=test -Dmdep.outputFilterFile=true|grep 'classpath='
classpath=xxx.jar:yyy.jar
$ mvn dependency:build-classpath -DincludeScope=test -Dmdep.outputFile=cp.txt
$ cat cp.txt
xxx.jar:yyy.jar