Почему maven выдает ошибку в exec-maven-plugin для определенного дампа - PullRequest
0 голосов
/ 01 февраля 2019

Я использую 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) -> [Help 1]

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

1 Ответ

0 голосов
/ 01 февраля 2019

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

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

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

...