我有一个多模块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
的资源包不会抛出异常,这告诉我,如何创建该登录文件存在问题。
这种行为有什么解释吗?
答案 0 :(得分:0)
你不应该在main
而不是test
中生成login.properties吗?
printf "userName=$bamboo_login_userName\npassword=$bamboo_login_password" > core/src/main/resources/login.properties