bugfix> java > 投稿

次のようなマルチモジュール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 のリソースバンドル例外をスローしません。これは、ログインファイルの作成方法に問題があることを示しています。

この動作について説明はありますか?