Запустите main из области тестирования в Maven: «Параметры mainClass для цели org.codehaus.mojo: exec-maven-plugin: 1.6.0: Java отсутствует или недействительна» - PullRequest
0 голосов
/ 29 ноября 2018

Я хочу выполнить основной класс, который находится в папке test src.Я пытался:

mvn -q exec:java \
    -Dexec.mainClass=com.example.beanoverriding.EmbeddedApplication \
    -Dexec.classpathScope="test"

Но получить:

[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:java (default-cli) on project bean-overriding: 
        The parameters 'mainClass' for goal org.codehaus.mojo:exec-maven-plugin:1.6.0:java are missing or invalid -> [Help 1]

См. Код в действии:

Open in Gitpod

Редактировать: Написание так работает:

mvn -q exec:exec \
    -Dexec.executable=java \
    -Dexec.args="-cp %classpath com.example.beanoverriding.EmbeddedApplication" \
    -Dexec.classpathScope="test"

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Согласно документации, вы действительно должны установить свойство exec.mainClass.Но это действительно не кажется основному классу.

При выполнении команды с опцией -X (mvn -X exec:java -Dexec.mainClass=com.example.beanoverriding.EmbeddedApplication -Dexec.classpathScope=test) Maven показывает дополнительную информацию относительно конфигурации:

    <configuration>
      ...
      <classpathScope default-value="runtime">${exec.classpathScope}</classpathScope>
      ...
      <mainClass>${start-class}</mainClass>
      ...
    </configuration>

Кажется, что основной класс установлен свойством start-class ... Так что, похоже, свойство переопределяется в некоторой конфигурации.И действительно, это так.Это в spring-boot-starter-parent пом.См. https://github.com/spring-projects/spring-boot/blob/v2.1.0.RELEASE/spring-boot-project/spring-boot-starters/spring-boot-starter-parent/pom.xml

Итак, с вашей текущей конфигурацией, следующая команда выполнит эту работу:

mvn -X exec:java -Dstart-class=com.example.beanoverriding.EmbeddedApplication -Dexec.classpathScope=test

0 голосов
/ 29 ноября 2018

Использовать classpathScope = test (см. https://www.mojohaus.org/exec-maven-plugin/java-mojo.html#classpathScope)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...