Maven部署Spring Boot项目到WebLogic时maven-deploy-plugin执行失败
报错根因
该报错和WebLogic服务本身无直接关联,是执行Maven deploy 生命周期阶段时,找不到构建制品的上传目标仓库配置导致。当前pom.xml中distributionManagement配置块整段被注释,Maven无法确认构建好的war包要推送的目标地址,因此抛出异常。
注意:如果仅需本地生成war包后手动上传到WebLogic部署,不需要执行mvn deploy命令,执行mvn clean package即可在target目录生成可部署war包,不会触发该报错。
解决方案
根据实际部署需求二选一即可:
方案1:本地构建war包手动部署
直接替换执行的Maven命令,跳过deploy阶段:
mvn clean package -DskipTests
命令执行完成后,进入项目target目录,找到weblogic_users_REST_v1.war文件,登录WebLogic控制台手动上传部署即可。
方案2:通过Maven自动完成部署
- 放开pom.xml中被注释的
distributionManagement配置块,将地址替换为实际的部署目标地址,本地目录部署可保留file协议格式,远程仓库替换为对应仓库地址即可:
<distributionManagement> <repository> <id>weblogic-deploy-target</id> <name>WebLogic部署目标</name> <url>file:///替换为你的实际部署包存放路径</url> </repository> </distributionManagement>
- 如果需要直接通过Maven插件部署到运行中的WebLogic服务,在
build -> plugins节点下追加WebLogic官方Maven插件配置,替换配置中IP、账号、密码、节点名等实际参数:
<plugin> <groupId>com.oracle.weblogic</groupId> <artifactId>weblogic-maven-plugin</artifactId> <version>12.2.1-3-0</version> <configuration> <adminurl>t3://WebLogic管理节点IP:管理端口(默认7001)</adminurl> <user>WebLogic控制台管理员账号</user> <password>WebLogic控制台管理员密码</password> <targets>待部署的WebLogic节点/集群名称</targets> <name>weblogic_users_REST_v1</name> <localPath>${project.build.directory}/${project.build.finalName}.war</localPath> <upload>true</upload> </configuration> <executions> <execution> <id>deploy-to-weblogic</id> <phase>deploy</phase> <goals> <goal>deploy</goal> </goals> </execution> </executions> </plugin>
额外配置提醒
- 当前pom中引入的
spring-security-ldap指定了3.2.5.RELEASE版本,和Spring Boot 2.3.3.RELEASE存在版本不兼容问题,部署时大概率触发类冲突,建议删除该依赖的<version>标签,由Spring Boot父依赖自动仲裁适配的兼容版本。 - Spring Boot 2.3.x版本部署到WebLogic时,需要在
src/main/webapp/WEB-INF路径下新增weblogic.xml部署描述文件,配置优先加载项目内置类,避免WebLogic自带的旧版本依赖引发类冲突。
内容的提问来源于stack exchange,提问作者Yevgeniy
相关产品推荐
相关产品推荐

