Maven EAR项目 - JAR没有被排除在外?

时间:2014-03-17 14:39:38

标签: java maven jar jboss ear

我正在尝试从我的EAR中排除通过Maven构建的单个库.JAR文件,因为此库包含在JBoss EAP模块中。我按照文档中的说明进行操作,但无论如何我总是看到这个库。以下是相关的pom.xml部分:

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-ear-plugin</artifactId>
                <version>2.9</version>
                <configuration>
                    <!-- Tell Maven we are using Java EE 6 -->
                    <version>6</version>
                    <finalName>MenuProject</finalName>

                    <!-- Use Java EE ear libraries as needed. Java EE ear libraries are 
                        in easy way to package any libraries needed in the ear, and automatically 
                        have any modules (EJB-JARs and WARs) use them -->
                    <defaultLibBundleDir>lib</defaultLibBundleDir>
                    <packagingExcludes>**/postgresql*.jar</packagingExcludes>

                    <modules>
                        <!-- Register our War as a web module, and set the context root -->
                        <webModule>

...

如您所见,我正在尝试排除postgresql * .jar文件包含在我的EAR文件中。但是,当我进行构建时,我仍然会看到它。

我误解了这个功能吗?或者我做错了吗?有什么建议吗?

更新:我应该补充一下,这个库是作为我的应用所依赖的另一个库的依赖项添加的。这就是它首先被引入的原因。我不需要它包含在EAR中,因为它可以作为JBoss EAP模块使用。

1 个答案:

答案 0 :(得分:1)

将项目对象模型pom中的依赖项类型包装为类型:

<dependency>
        <groupId>${project.that.has.postgres.as.dependency.groupId}</groupId>
        <artifactId>${project.that.has.postgres.as.dependency.artifactId}</artifactId>
        <version>${project.that.has.postgres.as.dependency.version}</version>
        <type>pom</type>
</dependency>