@btiernay (yandex-qatools) が提案したプロジェクトを試しました。私はこれでかなりの数日を過ごしましたが、公共のインターネットに行くのではなく、内部リポジトリからバイナリをダウンロードしたかったので、私の場合はうまくいきません。理論上はサポートしていますが、実際にはサポートしていません。
OpenTable 組み込み PostgreSQL コンポーネント
私はotj-pg-embeddedを使用することになり、それは魅力のように機能します。コメントで言及されていたので、ここでも言及しようと思いました。
単体テストとローカル開発の両方で、ルールを介さずにスタンドアロン DB として使用しました。
依存:
<dependency>
<groupId>com.opentable.components</groupId>
<artifactId>otj-pg-embedded</artifactId>
<version>0.7.1</version>
</dependency>
コード:
@Bean
public DataSource dataSource(PgBinaryResolver pgBinaryResolver) throws IOException {
EmbeddedPostgres pg = EmbeddedPostgres.builder()
.setPgBinaryResolver(pgBinaryResolver)
.start();
// It doesn't not matter which databse it will be after all. We just use the default.
return pg.getPostgresDatabase();
}
@Bean
public PgBinaryResolver nexusPgBinaryResolver() {
return (system, machineHardware) -> {
String url = getArtifactUrl(postgrePackage, system + SEPARATOR + machineHardware);
log.info("Will download embedded Postgre package from: {}", url);
return new URL(url).openConnection().getInputStream();
};
}
private static String getArtifactUrl(PostgrePackage postgrePackage, String classifier) {
// Your internal repo URL logic
}