Mavenを初めて使用しています。Mavenを使用して異なるプロファイルのタスクを実行する方法
異なるユーザーに対してデータベース接続を実行したいので、このJDBC接続を提供する必要がある場所と、別のユーザーにこの接続を提供する方法が問題です。
私はさまざまなユーザーにプロファイルを提供する方法を知っていますが、データベース接続をどこで実行する必要がありますか?
Mavenを初めて使用しています。Mavenを使用して異なるプロファイルのタスクを実行する方法
異なるユーザーに対してデータベース接続を実行したいので、このJDBC接続を提供する必要がある場所と、別のユーザーにこの接続を提供する方法が問題です。
私はさまざまなユーザーにプロファイルを提供する方法を知っていますが、データベース接続をどこで実行する必要がありますか?
データベース接続プロパティ(username/password、urlなど)を外部に配置するのが最適な方法です。プロファイル内では、ユーザーごとにプロパティの値を定義し、mavenリソースフィルタリングを使用して設定することができます。あなたは、たとえば、たとえば以下のエントリが含まれています(src/config/settings.prp
で)configディレクトリ必要がありますあなたのMavenプロジェクト内
:POM内
userName = ${userName}
password = ${password}
db-driver = ${dbDriver}
db-url = ${dbUrl}
をあなたは
<project ...>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>filter-db-settings</id>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/config</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/config</directory>
</resource>
<filtering>true</filtering>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugins>
</build>
<profiles>
<profile>
<id>user-A</id>
<properties>
<userName>userA</userName>
<password>secret</password>
<dbDriver>com.driver.db</dbDriver>
<dbUrl>jdbc://db-url</dbUrl>
</properties>
</profile>
<profiles>
</project>
プラグインを持っているでしょうsrc/config
のファイルをフィルタリングし、Mavenプレースホルダをプロファイル内で指定された値に置き換えます。プロファイルにはパスワードが含まれているため、settings.xml
に移動して、プロジェクト自体でチェックインされないようにして、不要なパーティーにパスワードを公開する可能性があります。
警告:上記のプラグインを確認していないため、小さな間違いがある可能性があります。
プロパティファイルをに生成するのがベストプラクティスです。これにより、異なるユーザーの同じアーティファクトを自由に使用できます。変更する必要があるのは、外部プロパティファイルのプロパティ(アーティファクトの横のユーザーに与えられます)のみです。
次の記事では、スプリングExternalized Configurationを使用してプロパティを外部化する方法について説明します。
"データベース接続を実行する"という正確な意味は? Mavenはビルドツールです.Mavenビルド中にデータベースからのデータで何が起こるはずですか? – f1sh
どのような理由でデータベース接続を実行する必要がありますか?あなたのテストのために? –
@Nicolasはいユーザー名とパスワードのようなテストだけで実行したいです。だからどこでこれをするべきなのか分からない。私を助けてください。 – ketan