2016-04-13 12 views
0

Mavenを初めて使用しています。Mavenを使用して異なるプロファイルのタスクを実行する方法

異なるユーザーに対してデータベース接続を実行したいので、このJDBC接続を提供する必要がある場所と、別のユーザーにこの接続を提供する方法が問題です。

私はさまざまなユーザーにプロファイルを提供する方法を知っていますが、データベース接続をどこで実行する必要がありますか?

+2

"データベース接続を実行する"という正確な意味は? Mavenはビルドツールです.Mavenビルド中にデータベースからのデータで何が起こるはずですか? – f1sh

+0

どのような理由でデータベース接続を実行する必要がありますか?あなたのテストのために? –

+0

@Nicolasはいユーザー名とパスワードのようなテストだけで実行したいです。だからどこでこれをするべきなのか分からない。私を助けてください。 – ketan

答えて

0

データベース接続プロパティ(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を使用してプロパティを外部化する方法について説明します。

+0

異なるユーザー用にpom.xmlファイルを書き込む方法と、この特定のユーザーに対してデータベース関連のタスクを実行するにはどのようにすればよいかの例を教えてください。 – ketan

+0

データベース関連の仕事はどういう意味ですか? – uniknow

+0

これはまた役に立つかもしれません:[異なったプロフィールのための異なった特性ファイル](http://stackoverflow.com/questions/8325366/maven-different-property-files-for-different-profiles?rq=1) – uniknow

関連する問題