Сборка Maven приостанавливается, когда приложение весенней загрузки требует от пользователя стандартного ввода - PullRequest
0 голосов
/ 16 мая 2019

У меня есть простой проект Springboot, созданный для автономного приложения.Основной метод реализует метод run интерфейса ApplicationRunner

@SpringBootApplication
public class DemoApplication implements ApplicationRunner {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    @Override
    public void run(ApplicationArguments args) throws Exception {

        final Scanner scanner = new Scanner(System.in);
        final String inputFilePath = scanner.nextLine();

        System.out.println(inputFilePath);
    }
}

Приложение может быть выполнено без проблем.Но когда приложение создается через maven, сборка приостанавливается посередине и запрашивает ввод пользователя.Это потому, что я использовал сканер, чтобы получить пользовательский ввод для выполнения

В файл pom не было внесено никаких изменений (это pom-загрузочный pom по умолчанию)

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

Простой JavaПроект Maven не имеет этой проблемы.Строит успешно.Это приходит только с этим проектом весенней загрузки.Что я здесь не так делаю?Нужно ли добавлять какой-то параметр в spring-boot-maven-plugin

И у меня также написано несколько юнит-тестов.

@RunWith(SpringRunner.class)
@SpringBootTest
public class ValidationTest {

    @Autowired
    private ValidationService validationService;

    @Test
    public void test_1() {
        final String number = "8801673191614";
        boolean result = validationService.isValidMSISDN(number);

        Assert.assertTrue(result);
    }
}

1 Ответ

0 голосов
/ 16 мая 2019

Создайте свой проект с -Dmaven.test.skip=true аргументами.Проблема в том, что при запуске тестов запускается весь контекст Spring.

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