Почему maven выдает ошибку в exec-maven-plugin для определенного дампа

Я использую exec-maven-plugin и сталкиваюсь с очень странной проблемой.

У меня есть следующий код

<plugins>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.5.0</version>
        <executions>
            <execution>
                <id>import database </id>
                <phase>generate-test-resources</phase>
                <goals>
                    <goal>exec</goal>
                </goals>
                <configuration>
                    <executable>imp</executable>
                    <commandlineArgs>user/user FULL=Y FILE=db_baseline.dmp</commandlineArgs>
                    <workingDirectory>${project.basedir}/src/test/resources/</workingDirectory>
                </configuration>
            </execution>
        </executions>
    </plugin>
</plugins>

Когда я запускаю это, он работает до конца и показывает мне, что база данных импортируется (даже регистрируясь в базе данных, я вижу все данные), но плагин не работает со следующей ошибкой

[ОШИБКА] Не удалось выполнить цель org.codehaus.mojo:exec-maven-plugin:1.5.0:exec (импортировать базу данных) в проекте xxxxx: выполнение команды не удалось.: Процесс завершен с ошибкой: 3 (значение выхода: 3) -> [Помощь 1]

Что еще более странно, если я использую другой файл дампа, я не вижу ошибки. Почему это? Что может быть другим или неправильным в этом файле дампа, который maven выдает ошибки?


person Snake    schedule 31.01.2019    source источник


Ответы (1)


Вы получаете ту же ошибку, если запускаете программу в командной строке без Maven? Exit value: 3 означает, что используемый скрипт возвращает Maven код '3', в частности плагин exec. По умолчанию цель exec:exec предполагает, что "возврат 0 означает успех, ненулевое значение означает неудачу", обычно соблюдаемые сценариями в мире Unix.

Если исполняемый файл imp не соответствует этому соглашению, используйте <successCodes> параметр конфигурации, чтобы перечислить, какие коды указывают на успех этого исполняемого файла. Плагин проверит список, чтобы решить, должен ли он завершить сборку.

Что касается того, почему этот файл возвращает код 3, а другие нет - Maven просто передает значение, которое возвращает imp. Вам придется изучить содержимое файла и то, как работает сценарий, чтобы определить, в чем заключаются различия. Я сомневаюсь, что это как-то связано с Maven.

person user944849    schedule 31.01.2019
comment
Спасибо за ваш ответ .. это как раз странно. Оба файла работают хорошо и с одинаковым выводом с использованием командной строки. - person Snake; 01.02.2019