2014-09-02 296 views
0

我使用maven来打包我的web应用程序,但是我发现很多maven jars都在我的war的lib目录中。我不认为它们对我在tomcat下的web应用程序很有用,所以我怎么能排除它们呢?pom.xml中的maven插件依赖范围

some jars

 <dependencies> 
    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-core-asl</artifactId> 
     <version>1.9.13</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-mapper-asl</artifactId> 
     <version>1.9.13</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-jaxrs</artifactId> 
     <version>1.9.13</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-xc</artifactId> 
     <version>1.9.13</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.whalin</groupId> 
     <artifactId>Memcached-Java-Client</artifactId> 
     <version>3.0.2</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.imgscalr</groupId> 
     <artifactId>imgscalr-lib</artifactId> 
     <version>4.2</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.core</groupId> 
     <artifactId>jersey-server</artifactId> 
     <version>2.6</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.media</groupId> 
     <artifactId>jersey-media-json-jackson</artifactId> 
     <version>2.6</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.media</groupId> 
     <artifactId>jersey-media-multipart</artifactId> 
     <version>2.6</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>3.2.0.RELEASE</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>3.2.0.RELEASE</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>3.2.0.RELEASE</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-jdbc</artifactId> 
     <version>3.2.0.RELEASE</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-aop</artifactId> 
     <version>3.2.0.RELEASE</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-orm</artifactId> 
     <version>3.2.0.RELEASE</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>aspectjrt</artifactId> 
     <version>1.5.4</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>aspectjweaver</artifactId> 
     <version>1.5.4</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.14</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>ch.qos.logback</groupId> 
     <artifactId>logback-core</artifactId> 
     <version>1.0.13</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>ch.qos.logback</groupId> 
     <artifactId>logback-classic</artifactId> 
     <version>1.0.13</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>1.7.5</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.logback-extensions</groupId> 
     <artifactId>logback-ext-spring</artifactId> 
     <version>0.1.1</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.ext</groupId> 
     <artifactId>jersey-spring3</artifactId> 
     <version>2.6</version> 
     <scope>compile</scope> 
     <exclusions> 
     <exclusion> 
      <artifactId>spring</artifactId> 
      <groupId>org.springframework</groupId> 
     </exclusion> 
     <exclusion> 
      <artifactId>spring-core</artifactId> 
      <groupId>org.springframework</groupId> 
     </exclusion> 
     <exclusion> 
      <artifactId>spring-web</artifactId> 
      <groupId>org.springframework</groupId> 
     </exclusion> 
     <exclusion> 
      <artifactId>spring-beans</artifactId> 
      <groupId>org.springframework</groupId> 
     </exclusion> 
     <exclusion> 
      <artifactId>spring-context</artifactId> 
      <groupId>org.springframework</groupId> 
     </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>c3p0</groupId> 
     <artifactId>c3p0</artifactId> 
     <version>0.9.1.2</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.11</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-test</artifactId> 
     <version>3.2.0.RELEASE</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>redis.clients</groupId> 
     <artifactId>jedis</artifactId> 
     <version>2.4.2</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-lang3</artifactId> 
     <version>3.3.2</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.mybatis</groupId> 
     <artifactId>mybatis</artifactId> 
     <version>3.1.1</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.mybatis</groupId> 
     <artifactId>mybatis-spring</artifactId> 
     <version>1.2.2</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.mybatis.generator</groupId> 
     <artifactId>mybatis-generator-maven-plugin</artifactId> 
     <version>1.3.2</version> 
     <scope>compile</scope> 
     <exclusions> 
     <exclusion> 
      <artifactId>google-collect</artifactId> 
      <groupId>com.google.code.google-collections</groupId> 
     </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.shardbatis</groupId> 
     <artifactId>shardbatis</artifactId> 
     <version>2.0.0B</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>net.sf.jsqlparser</groupId> 
     <artifactId>jsqlparser</artifactId> 
     <version>0.7.0</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.yolu.wrm</groupId> 
     <artifactId>trendrr-beanstalk</artifactId> 
     <version>1.0</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>commons-codec</groupId> 
     <artifactId>commons-codec</artifactId> 
     <version>1.8</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>net.sourceforge.cardme</groupId> 
     <artifactId>cardme</artifactId> 
     <version>0.4.0</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>commons-httpclient</groupId> 
     <artifactId>commons-httpclient</artifactId> 
     <version>3.1</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.yolu.wrm</groupId> 
     <artifactId>weibo4j</artifactId> 
     <version>1.0.0-SNAPSHOT</version> 
     <scope>compile</scope> 
    </dependency> 
    </dependencies> 


    <build> 
    <sourceDirectory>/Users/mbao/workspace/wrm-server/src/main/java</sourceDirectory> 
    <scriptSourceDirectory>/Users/mbao/workspace/wrm-server/src/main/scripts</scriptSourceDirectory> 
    <testSourceDirectory>/Users/mbao/workspace/wrm-server/src/test/java</testSourceDirectory> 
    <outputDirectory>/Users/mbao/workspace/wrm-server/target/classes</outputDirectory> 
    <testOutputDirectory>/Users/mbao/workspace/wrm-server/target/test-classes</testOutputDirectory> 
    <resources> 
     <resource> 
     <directory>/Users/mbao/workspace/wrm-server/src/main/java</directory> 
     <includes> 
      <include>**/*.xml</include> 
     </includes> 
     </resource> 
     <resource> 
     <directory>/Users/mbao/workspace/wrm-server/src/main/resources/dev</directory> 
     </resource> 
    </resources> 
    <testResources> 
     <testResource> 
     <directory>/Users/mbao/workspace/wrm-server/src/test/resources</directory> 
     </testResource> 
    </testResources> 
    <directory>/Users/mbao/workspace/wrm-server/target</directory> 
    <finalName>wrm-server###1.0</finalName> 
    <pluginManagement> 
     <plugins> 
     <plugin> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>1.3</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <version>2.2-beta-5</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.1</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-release-plugin</artifactId> 
      <version>2.0</version> 
     </plugin> 
     </plugins> 
    </pluginManagement> 
    <plugins> 
     <plugin> 
     <groupId>org.mybatis.generator</groupId> 
     <artifactId>mybatis-generator-maven-plugin</artifactId> 
     <version>1.3.2</version> 
     <dependencies> 
      <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.14</version> 
      <scope>compile</scope> 
      </dependency> 
     </dependencies> 
     <configuration> 
      <verbose>true</verbose> 
      <overwrite>true</overwrite> 
      <configurationFile>/Users/mbao/workspace/wrm-server/src/main/resources/dev/generatorConfig.xml</configurationFile> 
     </configuration> 
     </plugin> 
     <plugin> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.1</version> 
     <executions> 
      <execution> 
      <id>default-testCompile</id> 
      <phase>test-compile</phase> 
      <goals> 
       <goal>testCompile</goal> 
      </goals> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
       <encoding>UTF-8</encoding> 
       <compilerArguments> 
       <extdirs>src/main/webapp/WEB-INF/lib</extdirs> 
       </compilerArguments> 
      </configuration> 
      </execution> 
      <execution> 
      <id>default-compile</id> 
      <phase>compile</phase> 
      <goals> 
       <goal>compile</goal> 
      </goals> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
       <encoding>UTF-8</encoding> 
       <compilerArguments> 
       <extdirs>src/main/webapp/WEB-INF/lib</extdirs> 
       </compilerArguments> 
      </configuration> 
      </execution> 
     </executions> 
     <configuration> 
      <source>1.6</source> 
      <target>1.6</target> 
      <encoding>UTF-8</encoding> 
      <compilerArguments> 
      <extdirs>src/main/webapp/WEB-INF/lib</extdirs> 
      </compilerArguments> 
     </configuration> 
     </plugin> 
     <plugin> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.4</version> 
     <executions> 
      <execution> 
      <id>default-war</id> 
      <phase>package</phase> 
      <goals> 
       <goal>war</goal> 
      </goals> 
      <configuration> 
       <webResources> 
       <resource> 
        <directory>src/main/resources/dev</directory> 
        <targetPath>WEB-INF/classes</targetPath> 
       </resource> 
       <resource> 
        <directory>web/WEB-INF/</directory> 
        <targetPath>WEB-INF/</targetPath> 
       </resource> 
       </webResources> 
      </configuration> 
      </execution> 
     </executions> 
     <configuration> 
      <webResources> 
      <resource> 
       <directory>src/main/resources/dev</directory> 
       <targetPath>WEB-INF/classes</targetPath> 
      </resource> 
      <resource> 
       <directory>web/WEB-INF/</directory> 
       <targetPath>WEB-INF/</targetPath> 
      </resource> 
      </webResources> 
     </configuration> 
     </plugin> 
     <plugin> 
     <artifactId>maven-clean-plugin</artifactId> 
     <version>2.4.1</version> 
     <executions> 
      <execution> 
      <id>default-clean</id> 
      <phase>clean</phase> 
      <goals> 
       <goal>clean</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
     <plugin> 
     <artifactId>maven-install-plugin</artifactId> 
     <version>2.3.1</version> 
     <executions> 
      <execution> 
      <id>default-install</id> 
      <phase>install</phase> 
      <goals> 
       <goal>install</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
     <plugin> 
     <artifactId>maven-resources-plugin</artifactId> 
     <version>2.5</version> 
     <executions> 
      <execution> 
      <id>default-resources</id> 
      <phase>process-resources</phase> 
      <goals> 
       <goal>resources</goal> 
      </goals> 
      </execution> 
      <execution> 
      <id>default-testResources</id> 
      <phase>process-test-resources</phase> 
      <goals> 
       <goal>testResources</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
     <plugin> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <version>2.10</version> 
     <executions> 
      <execution> 
      <id>default-test</id> 
      <phase>test</phase> 
      <goals> 
       <goal>test</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
     <plugin> 
     <artifactId>maven-deploy-plugin</artifactId> 
     <version>2.7</version> 
     <executions> 
      <execution> 
      <id>default-deploy</id> 
      <phase>deploy</phase> 
      <goals> 
       <goal>deploy</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
     <plugin> 
     <artifactId>maven-site-plugin</artifactId> 
     <version>3.0</version> 
     <executions> 
      <execution> 
      <id>default-site</id> 
      <phase>site</phase> 
      <goals> 
       <goal>site</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>/Users/mbao/workspace/wrm-server/target/site</outputDirectory> 
       <reportPlugins> 
       <reportPlugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-project-info-reports-plugin</artifactId> 
       </reportPlugin> 
       </reportPlugins> 
      </configuration> 
      </execution> 
      <execution> 
      <id>default-deploy</id> 
      <phase>site-deploy</phase> 
      <goals> 
       <goal>deploy</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>/Users/mbao/workspace/wrm-server/target/site</outputDirectory> 
       <reportPlugins> 
       <reportPlugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-project-info-reports-plugin</artifactId> 
       </reportPlugin> 
       </reportPlugins> 
      </configuration> 
      </execution> 
     </executions> 
     <configuration> 
      <outputDirectory>/Users/mbao/workspace/wrm-server/target/site</outputDirectory> 
      <reportPlugins> 
      <reportPlugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-project-info-reports-plugin</artifactId> 
      </reportPlugin> 
      </reportPlugins> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 

enter image description here

+0

这些都是maven罐子,他们是怎么进来的?你可以发布你的'mvn help:effective-pom'吗? – 2014-09-02 03:17:47

+0

@JigarJoshi更新。是的,他们是maven罐子,但我认为它们不会影响战争档案。对? – dustdn 2014-09-02 03:32:44

+0

你可以附加'mvn dependency:tree'命令的结果吗? – smajlo 2014-09-02 07:15:04

回答

1

尝试改变

<dependency> 
    <groupId>org.mybatis.generator</groupId> 
    <artifactId>mybatis-generator-maven-plugin</artifactId> 
    <version>1.3.2</version> 
    <scope>compile</scope> 
    <exclusions> 
    <exclusion> 
     <artifactId>google-collect</artifactId> 
     <groupId>com.google.code.google-collections</groupId> 
    </exclusion> 
    </exclusions> 
</dependency> 

<dependency> 
    <groupId>org.mybatis.generator</groupId> 
    <artifactId>mybatis-generator-maven-plugin</artifactId> 
    <version>1.3.2</version> 
    <scope>provided</scope> 
    <exclusions> 
    <exclusion> 
     <artifactId>google-collect</artifactId> 
     <groupId>com.google.code.google-collections</groupId> 
    </exclusion> 
    </exclusions> 
</dependency> 

编辑:以上只是权宜之计,一般来说,你应该摆脱这种依赖的,插件的使用应在pluginManagement定义。

+0

一个插件不应该被用作依赖,这只是错误的。 – khmarbaise 2014-09-03 08:35:47

+0

@khmarbaise你是完全正确的。我只是简单地把它当作快速修复来使用。将编辑我的帖子。 – smajlo 2014-09-03 09:25:27

1

你应该更新的依赖关系,要在战争中的文件以排除范围的部分。

<scope>provided</scope> 

提供的作用域表示在编译期间依赖关系将存在,但不会包含在war文件中。

欲了解更多信息,可以参考: -

http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html

而对于行家相关的jar您可以通过以下排除。

<configuration> 
     <packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes> 
</configuration> 
5

只需回答。切勿将Maven插件作为依赖项使用,因为它们不属于依赖项。这就是为什么在构建中获得这些奇怪的工件的原因。