2010-08-20 131 views

回答

1

有一個選項可以在依賴項標記中指定範圍。你可以指定作爲測試範圍,它不會被納入你的戰爭,但只會用於測試。

1

你可以用<scope>provided</scope>標籤來做。

<dependency> 
     <groupId>org.livetribe</groupId> 
     <artifactId>livetribe-jsr223</artifactId> 
     <version>2.0.6</version> 
     <scope>provided</scope> 
    </dependency> 
4

正如其他人所建議的那樣,scope = provided或scope = test是要走的路。

  1. <scope>provided</scope>暗示庫將存在於目標系統中,不需要部署。 (或者在某些情況下,像log4j的不得進行部署,否則類加載器的問題會導致)
  2. <scope>test</scope>表明,依賴只需要測試代碼(因此將不再需要或提供在目標系統上)

下面是相關文檔:

Introduction to the Dependency Mechanism

相關提示:不同的使用情況是,在您使用在不同的服務器不同的數據庫。您可以使用配置文件部署正確的驅動程序:

<profiles> 
    <profile> 
     <id>testserver</id> 
     <dependencies> 
      <dependency> 
      ... (database driver a) 
      </dependency> 
     </dependencies> 
    </profile> 
    <profile> 
     <id>productionserver</id> 
     <dependencies> 
      <dependency> 
      ... (database driver b) 
      </dependency> 
     </dependencies> 
    </profile> 
    <profile> 
     <id>localdevelopment</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <dependencies> 
      <dependency> 
      ... (database driver c) 
      </dependency> 
     </dependencies> 
    </profile> 
</profiles> 

這樣,如果你只需要調用mvn install,司機C的溫度將被部署,而mvn install -Ptestservermvn install -Pproductionserver將包括司機a或b,分別。