如何避免Cargo插件JAR被打包进Maven生成的WAR文件?
解决Cargo插件JAR被打包进WAR的问题
核心问题出在Cargo相关依赖的配置位置——你应该把插件专属的依赖放在插件内部的配置块里,而不是项目全局的<dependencies>节点下,这样Maven就不会把它们当成应用依赖打包进WAR。
具体操作步骤:
调整pom.xml配置
把原本放在项目根<dependencies>里的Cargo相关依赖,移到<build><plugins>下对应Cargo插件的<dependencies>块中。另外注意,不存在cargo-maven3-plugin,直接用cargo-maven2-plugin即可,它完全兼容Maven 3.x版本。示例配置片段:
<build> <plugins> <plugin> <groupId>org.codehaus.cargo</groupId> <artifactId>cargo-maven2-plugin</artifactId> <version>1.10.0</version> <!-- 按需替换为合适版本 --> <configuration> <!-- 这里配置Cargo的容器、部署等参数,比如本地Tomcat或远程容器 --> <container> <containerId>tomcat9x</containerId> <type>local</type> </container> <deployables> <deployable> <groupId>your-group-id</groupId> <artifactId>your-war-artifact</artifactId> <type>war</type> </deployable> </deployables> </configuration> <!-- 插件专属依赖放在这里,不会被打包进WAR --> <dependencies> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-catalina</artifactId> <version>9.0.70</version> <scope>provided</scope> </dependency> </dependencies> </plugin> </plugins> </build>清理Eclipse缓存并同步配置
在Eclipse中右键项目 → Maven → Update Project,勾选「Force Update of Snapshots/Releases」,让m2e插件同步最新的Maven配置,避免本地依赖缓存导致的问题。验证打包结果
执行命令mvn clean package,解压生成的WAR包,检查WEB-INF/lib目录,确认Cargo相关的JAR已经不再被包含其中。
内容的提问来源于stack exchange,提问作者Romualdo Rubens de Freitas
相关产品推荐
相关产品推荐

