我正在尝试打包一个包含阀门的 jboss AS7.5 模块(RedHat EAP 6.4)。该阀门需要绑定到 tomcat-catalina-xyzjar 随附的 AuthenticatorBase,据我所知,它本身并不是一个可下载的模块。所以,我需要将该 jar 构建到我的模块中,使用 maven 插件来打包依赖项。
问题是,依赖项 org.apache.tomcat:tomcat-catalina:xyz 的 GAV 包括 AS 中包含的库,即 servlet 库。如果我打包 catalina 依赖项,使用执行此操作的 maven 插件,我会得到一堆不必要的 jar,它们会在运行时破坏我的模块。
有没有办法
- 只打包我想要的罐子?
- 找到一个不同的依赖项,它只包含 tomcat 阀门(即,包含 org.apache.catalina.authenticator.AuthenticatorBase 的 jar)绑定?
或者,最好是否有一个已经存在用于此目的的模块,我可以在我的 module.xml 文件中将其作为模块依赖项引用?
<dependencies>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
<version>${tomcat-catalina.version}</version>
</dependency>
...
</dependencies>
包括jars: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?