2016-04-13 8 views
0

Maven.maven kullanarak farklı profiller için nasıl görev gerçekleştirilir

Farklı kullanıcılar için veritabanı bağlantısı kurmak istiyorum, bu yüzden benim sorunum, bu JDBC bağlantısını nereden vermem gerektiği ve bu bağlantıyı farklı kullanıcılar için nasıl sağlayacağımdır?

Farklı kullanıcılar için profiller nasıl sağlandığını biliyorum, ancak veritabanı bağlantısını nerede gerçekleştirmeli ve nasıl çalıştırmalıyım?

+2

Tam olarak "veritabanı bağlantısı gerçekleştir" ile ne demek istiyorsunuz? Maven bir inşa aracı, bir maven inşa sırasında veritabanından veri ile ne olması gerekiyor? – f1sh

+0

Veritabanı bağlantısı yapmak için hangi sebepten kaynaklanıyorsunuz? Testleriniz için? –

+0

@Nicolas evet Sadece kullanıcı adı ve şifre sağlama gibi testler yapmak istiyorum. bu yüzden nerede yapmalıyım anlamıyorum. lütfen bunun için bana yardım edin. – ketan

cevap

0

En iyi yaklaşım, veritabanı bağlantı özelliklerinizi (kullanıcı adı/parola, url, vb. Gibi) harici yapar. Bir profil içinde, kullanıcı başına özellikleri için değerleri tanımlayabilir ve bunları ayarlamak için maven kaynak filtresini kullanabilirsiniz. Eğer

<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> 

eklentisi olurdu pom içinde

userName = ${userName} 
password = ${password} 
db-driver = ${dbDriver} 
db-url = ${dbUrl} 

: En maven proje kapsamında

örneğin örneğin aşağıdaki girdileri içeren (src/config/settings.prp cinsinden) bir yapılandırma dizini olurdu dosyaları src/config'da filtreleyecek ve maven yer tutucularını profilinizde belirtilen değerlere göre değiştirecektir. Profil bir şifre içerdiğinden, settings.xml numaranıza taşıyabilirsiniz, bu sayede projenin kendisi ile birlikte kontrol edilemez, bu da şifreyi istenmeyen taraflara gösterebilir.

UYARı: Yukarıdaki eklenti doğrulanmadı, bu nedenle küçük hatalar içerebilir. Oluşturulma işleminin içinde NOT ürününü yerleştirmek için en iyi yöntem.

Bunu yaparak aynı artefiği farklı kullanıcılardan kullanma özgürlüğünü elde edersiniz ve değiştirmeniz gereken tek şey, dış özellik dosyasındaki (artefaktın yanında kullanıcıya verilecek olan) özelliklerdir.

Aşağıdaki makale, yayı Externalized Configuration ile nasıl dışa aktarabileceğinizi açıklar.

+0

Farklı kullanıcılar için pom.xml dosyasını nasıl yazabilirim ve bu özel kullanıcı için veritabanı ile ilgili görevleri nasıl yapabilirim? – ketan

+0

Veritabanı ile ilgili görevler ile ne demek istiyorsunuz? – uniknow

+0

Bu da yararlı olabilir: [Farklı profiller için farklı maven özellikleri] (http://stackoverflow.com/questions/8325366/maven-different-property-files-for-different-profiles?rq=1) – uniknow

İlgili konular