2013-07-02 10 views
5

webappに私がprovidedとマークした依存関係があります。これは、アプリケーションサーバによって提供されると期待しているからですバージョン)。テストを実行しているときや、runのようなtomcat7-maven-pluginの目標を使用して、自分のローカルホスト上で開発をシミュレートするにはどうすればよいですか?tomcat7-maven-pluginのゴールで「提供された」クラスパスを使用する

jarを手作業でコピーしなければ、私はそれを行う方法がありません。私はtestクラスパスの使い方を見ることができます - 私がやろうとしていることに何か問題がありますか?

答えて

2

これを動作させる方法を見つけました - それは妥当ですが、依存関係情報と魔法のプロファイルが重複しています...私はtomcat7-maven-pluginが提供する手段実行時にコンテナで使用できる依存関係

tomcatプラグインの実行時にアクティブになるプロファイルを追加し、providedスコープのスコープがcompileの依存関係をそのプロファイルに追加します。私は使用

... in project pom ... 
<dependencies> 
    <dependency> 
    <groupId>com.mycompany</groupId> 
    <artifactId>my-provided-artifact</artifactId> 
    <version>1.2.3</version> 
    <scope>provided</scope> 
    </dependency> 
</dependencies> 
... 
<profiles> 
    <profile> 
    <!-- profile activated as cli param when tomcat7 plugin runs --> 
    <id>tomcat</id> 
    <dependencies> 
     <dependency> 
     <groupId>com.mycompany</groupId> 
     <artifactId>my-provided-artifact</artifactId> 
     <version>1.2.3</version> 
     <scope>compile</scope> 
     </dependency> 
    </dependencies> 
    </profile> 
</profiles> 
0

、例えば、これ:

<plugin> 
    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat7-maven-plugin</artifactId> 
    <version>2.0</version> 
    <configuration> 
     <path>/myApp</path> 
    </configuration> 
    <dependencies> 
     <dependency> 
      <groupId>com.oracle</groupId> 
      <artifactId>ojdbc6</artifactId> 
      <version>11.2.0.3</version>      
     </dependency> 
    </dependencies> 
</plugin> 

、その後も提供して後に再び依存を含みます。

関連する問題