2013-10-22 100 views
0

我有一個項目,我正在爲使用hibernate實現jpa的學校開展工作。我的問題是,如果在休眠屬性文件中關閉模式生成,並且我想手動更新模式(我的ddl文件),並將我的模式與應用程序一起部署,那麼需要在我的<build></build>中包含什麼內容標記將架構作爲部署的一部分?瞭解Maven構建過程

在src/main/resources下我有一個包含表創建腳本的ddl目錄。

回答

1

您將需要使用sql-maven-plugin在構建過程中執行sql

<build> 
    [...] 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>sql-maven-plugin</artifactId> 
     <version>1.5</version> 

     <dependencies> 
      <!-- specify the dependent jdbc driver here --> 
      <dependency> 
      <groupId>postgresql</groupId> 
      <artifactId>postgresql</artifactId> 
      <version>8.1-407.jdbc3</version> 
      </dependency> 
     </dependencies> 

     <!-- common configuration shared by all executions --> 
     <configuration> 
      <driver>org.postgresql.Driver</driver> 
      <url>jdbc:postgressql://localhost:5432:yourdb</url> 
      <username>postgres</username> 
      <password>password</password> 
      <!-- You can comment out username/password configurations and 
       have maven to look them up in your settings.xml using ${settingsKey} 
      --> 
      <settingsKey>sensibleKey</settingsKey> 
      <!--all executions are ignored if -Dmaven.test.skip=true--> 
      <skip>${maven.test.skip}</skip> 
     </configuration> 

     <executions> 
      <execution> 
      <id>create-data</id> 
      <phase>process-test-resources</phase> 
      <goals> 
       <goal>execute</goal> 
      </goals> 
      <configuration> 
       <orderFile>ascending</orderFile> 
       <fileset> 
       <basedir>${basedir}</basedir> 
       <includes> 
        <include>src/test/sql/test-data2.sql</include> 
       </includes> 
       </fileset> 
      </configuration> 
      </execution> 

     </plugin> 
     [...] 
    </plugins> 
    [...] 
    </build> 

根據您的數據庫

+0

構建恰好我的機器上,但應用程序的更改配置實際上正在部署到其他地方的服務器,那麼這是如何工作的? – user1154644

+0

生產數據庫的部署應該獨立於構建過程,它應該綁定到應用程序的引導程序,這更適合測試數據庫的創建,以便測試執行,如果您仍然希望這樣做,只需更改數據庫url和其他配置,它就會指向到遠程機器 –