Я бег Maven из командной строкиПочему maven бросает InvocationTargetException?
mvn exec:java -Dexec.mainClass=org.xmlcml.svg2xml.analyzer.DocumentListAnalyzer
-Dexec.args=.
Когда моя программа бросает RuntimeException, специалист не бросает это, но бросает InvocationTargetException
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:297)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.RuntimeException: Only one primary allowed for 3 line textL
ineGroup
at org.xmlcml.svg2xml.text.TextLineGroup.createSuscriptTextLineList(Text
LineGroup.java:181)
at org.xmlcml.svg2xml.text.TextLineGroup.createHtml(TextLineGroup.java:2
40)
Это не происходит при запуске Eclipse.
Почему это происходит? (Меня это смутило и смущает моих пользователей).
Как насчет исключения RuntimeException в трассировке стека? –
@Andrew Да, это исключение, которое я выбрал, и это последнее сообщенное исключение в Eclipse. Что меня смутило, что я думал, что MY-код каким-то образом бросает 'InvocationTargetException'. Имеет ли тот факт, что maven использует отражение, вызывает какие-либо проблемы? –
Из исходного кода плагина 'exec' ясно, что он использует отражение для запуска вашего основного класса. Если что-то пойдет не так (ваш метод выдает исключение, например), он распространяется до основного потока maven и заверяется в 'InvocationTargetException'. Комментарий от @Charlee объясняет это. –