У меня есть многомодульный проект 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
не вызывает исключение, которое говорит мне, что существует проблема с тем, как я создаю этот файл входа в систему.
Есть ли объяснение этому поведению?