包装时如何从maven依赖中排除罐子?

时间:2017-06-01 19:02:41

标签: jboss7.x jboss-eap-6 tomcat-valve

我试图打包一个包含阀门的jboss AS7.5模块(RedHat EAP 6.4)。该阀门需要绑定tomcat-catalina-x.y.z.jar附带的AuthenticatorBase,而且(据我所知)它本身并不是一个可下载的模块。因此,我需要将该jar构建到我的模块中,使用maven插件进行依赖包装。

问题是,依赖的GAV,org.apache.tomcat:tomcat-catalina:x.y.z,包括AS中包含的库,即servlet库。如果我打包catalina依赖,使用maven插件,我会得到一堆不必要的jar在运行时破坏我的模块。

有没有办法

  1. 只包装我想要的罐子?
  2. 找到一个不同的依赖项,只包含tomcat阀门(即包含org.apache.catalina.authenticator.AuthenticatorBase的jar)绑定?
  3. 或者,最好是否存在一个已经存在的模块,我可以将其作为模块依赖项引用到我的module.xml文件中?

    <dependencies>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-catalina</artifactId>
            <version>${tomcat-catalina.version}</version>
        </dependency>
        ...
    </dependencies>
    

    包括jar:tomcat-catalina,tomcat-servlet,tomcat-juli,tomcat-annotations等。

    <build>
        <plugins>
            <plugin>
                <!-- NOTE: We don't need a groupId specification because the group is 
                    org.apache.maven.plugins ...which is assumed by default. -->
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id> <!-- this is used for inheritance merges -->
                        <phase>package</phase> <!-- bind to the packaging phase -->
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
       ...
       </plugins>
    </build>
    

    如何在我的打包模块中只获取tomcat-catalina.jar?

0 个答案:

没有答案