Не удается найти пакет ресурсов во время выпуска - PullRequest
0 голосов
/ 25 мая 2018

У меня есть многомодульный проект Maven, который выглядит следующим образом:

reactor
 | core
 | console
 | custom-maven-plugin (depends on core)
 | test-deployment

У меня есть пакет ресурсов с базовым именем login, который я исключаю из Git, поскольку он содержит пароли.В моем проекте файл находится в core/src/test/resources, и у меня есть тестовый класс, который использует его так:

public abstract class TestBase {
    private static final ResourceBundle constants = ResourceBundle.getBundle("constants");
    private static final ResourceBundle bundle = ResourceBundle.getBundle("login");
    private Connection connection;

    // ...

    Connection getConnection() {
        // Connection will be created in another method, this one just returns it.
    }
}

public class ActualTest extends TestBase {
    // Uses the connection in tests here.
}

Теперь, если я выполню mvn package для всего проекта, все тесты завершатсяправильно.

На моем сервере сборки у меня есть скрипт, который создает login.properties, поскольку он не включен в клонированный проект:

printf "userName=$bamboo_login_userName\npassword=$bamboo_login_password" > core/src/test/resources/login.properties

Сервер сборки выполнил mvn clean release:prepare release:perform,но на этом этапе сборка завершается с этим исключением:

java.util.MissingResourceException: Can't find bundle for base name login, locale en_US

Я уже проверил каталог core/src/test/resources и core/target/test-classes, но файл там.По какой-то причине пакет ресурсов для constants не вызывает исключение, которое говорит мне, что существует проблема с тем, как я создаю этот файл входа в систему.

Есть ли объяснение этому поведению?

1 Ответ

0 голосов
/ 25 мая 2018

Разве вы не должны генерировать свои login.properties в main вместо test?

printf "userName=$bamboo_login_userName\npassword=$bamboo_login_password" > core/src/main/resources/login.properties
...