2016-05-04 20 views
0

私は、MavenベースのWebプロジェクトで作業しています。 .warファイルを生成するモジュールでは、POMファイルにいくつかの依存関係があり、WEB-INF/libフォルダにいくつかのjarファイルが追加されています。私はjar:commons-dbcp-1.3.jarをPOMやlibフォルダに追加していませんが、mavenを使ってプロジェクトをビルドするときにはcommons-dbcp-1.3.jar .warファイルも追加しました。ターゲットディレクトリのlibフォルダにも表示できます。 誰でも、このjarがターゲットディレクトリ内のwarまたはlibフォルダにどのように追加されているかを説明するのに役立つことができます。dbcp jarが自動的にプロジェクトに追加されました

また、「ビルドパス」もチェックしましたが、このjarは外部のjarファイルとして追加されません。

私はEclipse(Indigo)を使用しています。

ここにPOMファイルがあります。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.company</groupId> 
    <artifactId>rpt</artifactId> 
    <version>4.0.2</version> 
    <packaging>war</packaging> 
    <dependencies> 
     <dependency> 
      <groupId>javax</groupId> 
      <artifactId>javaee-web-api</artifactId> 
      <version>6.0</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.struts</groupId> 
      <artifactId>struts-core</artifactId> 
      <version>1.3.5</version> 
     </dependency> 
     <dependency> 
      <groupId>com.lowagie</groupId> 
      <artifactId>itext</artifactId> 
      <version>2.1.4</version> 
     </dependency> 
     <dependency> 
      <groupId>com.itextpdf</groupId> 
      <artifactId>itextpdf</artifactId> 
      <version>5.4.2</version> 
     </dependency> 
     <dependency> 
      <groupId>struts</groupId> 
      <artifactId>struts</artifactId> 
      <version>1.1</version> 
      <optional>false</optional> 
     </dependency> 
     <dependency> 
      <groupId>org.json</groupId> 
      <artifactId>json</artifactId> 
      <version>20131018</version> 
     </dependency> 
     <dependency> 
      <groupId>com.mind</groupId> 
      <artifactId>mind-common-framework</artifactId> 
      <version>1.3.1</version> 
      <optional>false</optional> 
     </dependency> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.16</version> 
      <optional>false</optional> 
     </dependency> 
    </dependencies> 
    <organization> 
     <name>OrgName</name> 
    </organization> 
    <build> 
     <defaultGoal>package</defaultGoal> 
     <finalName>${project.artifactId}</finalName> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.5</version> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-source-plugin</artifactId> 
       <version>2.1.2</version> 
       <executions> 
        <execution> 
         <phase>generate-sources</phase> 
         <goals> 
          <goal>jar</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <finalName>${project.artifactId}-${project.version}-r${prefix.revision}</finalName> 
        <attach>false</attach> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.1.1</version> 
       <configuration> 
        <manifest> 
         <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
        </manifest> 
        <archive> 
         <manifestEntries> 
          <Implementation-Build>${project.version}</Implementation-Build> 
          <Build-Time>${maven.build.timestamp}</Build-Time> 
         </manifestEntries> 
        </archive> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <properties> 
     <targetJdk>1.7</targetJdk> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <maven.build.timestamp.format>yyyy/MM/dd HH:mm</maven.build.timestamp.format> 
    </properties> 
</project> 
+0

'mvn dependency:tree'を実行し、' DBCP'について何が表示されているのかを見てください。 – Kayaman

答えて

0

このJARには、おそらくあなたのプロジェクトとMaven自動的にダウンロードを実行するための依存関係の一つであるとコンパイルとパッケージの時点でのプロジェクトのために必要な依存関係(jarファイル)をパッケージ化することができます。
DBCPコモンズjarは、接続オブジェクトのプールを維持するためにApacheによって提供されます。これは基本的に、多くのユーザーが同時にDBにアクセスしようとするデータベース接続(例えば、DB操作を含むWebベースアプリケーション)を使用するアプリケーションで使用され、アプリケーションとシステムのパフォーマンスを向上させます。

このjarをパッケージにバンドルしたくない場合、そのような機能がアプリケーションがデプロイされるWebコンテナ(接続プーリング)によって提供される場合は、この依存関係ののスコープを提供されます'。

+0

あなたは正しいですが、これらのタイプの問題に対処する方法。私は生産上でエラー/例外を抱えていますが、私のローカル環境ではすべてOKです。 – NoNaMe

+0

このために直面​​している問題は何ですか? – Shubhi224

+0

私のケースjarは、pomファイルを追加することなく自動的にlibフォルダに追加されます。コンパイルされた戦争にどのように追加されたのか、POMファイルにこの依存関係を追加していないのですか? – NoNaMe

0

これに使用する有効範囲は「提供」です。これはMavenに、依存関係が実行時にコンテナやJDKによって提供されることを示します。

このスコープの依存関係は、推移的に渡されることも、WARなどのパッケージにバンドルされたり、実行時クラスパスに含まれることもありません。

https://maven.apache.org/general.html#scope-provided

+0

そうですが、これは私のpomファイルに依存関係を追加する必要があります。しかし、私のケースjarは、libフォルダにpomファイルを追加することなく追加されます。コンパイルされた戦争にどのように追加されたのか、POMファイルにこの依存関係を追加していないのですか? – NoNaMe

+0

pomファイルで定義されている依存関係の中には、このjarファイルに内部的な依存関係があるものがあります。したがって、pomファイルに明示的な定義を必要とせず、ターゲットフォルダのjarファイルもMavenによって処理されます。 – Shubhi224

関連する問題