如何排除资源包被构建到jar Maven?

时间:2015-02-06 12:44:49

标签: maven jar

我正在从maven构建一个jar文件的项目,但我想要一些资源包不包含在那个jar中。相反,我想建立两个单独的罐子,一个包含项目,另一个包含那些排除的包。怎么做?

1 个答案:

答案 0 :(得分:0)

假设您使用dependency:copy-dependencies,有两个选项可以帮助您:

  • excludeClassifiers:逗号分隔要排除的分类列表。空字符串表示不排除任何内容(默认)。
  • excludeScope排除范围。空字符串表示没有范围(默认)。

我用这个例子从我的Struts2 war项目中排除jsp-api.jar。运行StrutsTestCase测试需要这个jar,但是如果它包含在战争中,它会与Tomcat lib directori冲突,它已经包含了jsp-api.jar

在我的pom.xml中设置我的依赖关系:

<dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.1</version>
        <type>jar</type>
        <scope>provided</scope>        
    </dependency>

我的maven依赖插件如下:

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.4</version>
            <executions>
                <execution>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <outputDirectory>${project.basedir}/src/main/webapp/WEB-INF/lib</outputDirectory>
                <excludeScope>provided</excludeScope>
            </configuration>
        </plugin>

我在Tomcat上部署时解决了我的排除jar问题