使用Maven部署WebLogic应用

使用Maven部署WebLogic应用

在Maven项目中部署应用到WebLogic服务器可以通过以下几种方式实现:

1. 使用WebLogic Maven插件 (官方推荐)

Oracle提供了官方的WebLogic Maven插件,这是最直接的部署方式。

基本配置

xml 复制代码
<build>
    <plugins>
        <plugin>
            <groupId>com.oracle.weblogic</groupId>
            <artifactId>weblogic-maven-plugin</artifactId>
            <version>12.2.1.4.0</version>
            <configuration>
                <adminurl>t3://localhost:7001</adminurl>
                <user>weblogic</user>
                <password>welcome1</password>
                <upload>true</upload>
                <remote>false</remote>
                <verbose>true</verbose>
                <source>${project.build.directory}/${project.build.finalName}.war</source>
                <name>${project.build.finalName}</name>
            </configuration>
            <executions>
                <execution>
                    <id>deploy</id>
                    <phase>deploy</phase>
                    <goals>
                        <goal>deploy</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

常用命令

  • 部署应用:mvn weblogic:deploy
  • 重新部署:mvn weblogic:redeploy
  • 取消部署:mvn weblogic:undeploy
  • 启动应用:mvn weblogic:start
  • 停止应用:mvn weblogic:stop

2. 使用Cargo插件

Cargo提供了通用的应用服务器部署支持,包括WebLogic。

配置示例

xml 复制代码
<plugin>
    <groupId>org.codehaus.cargo</groupId>
    <artifactId>cargo-maven2-plugin</artifactId>
    <version>1.9.11</version>
    <configuration>
        <container>
            <containerId>weblogic12x</containerId>
            <type>remote</type>
        </container>
        <configuration>
            <type>runtime</type>
            <properties>
                <cargo.remote.uri>t3://localhost:7001</cargo.remote.uri>
                <cargo.remote.username>weblogic</cargo.remote.username>
                <cargo.remote.password>welcome1</cargo.remote.password>
            </properties>
        </configuration>
        <deployables>
            <deployable>
                <groupId>${project.groupId}</groupId>
                <artifactId>${project.artifactId}</artifactId>
                <type>war</type>
                <properties>
                    <context>${project.build.finalName}</context>
                </properties>
            </deployable>
        </deployables>
    </configuration>
</plugin>

常用命令

  • 部署:mvn cargo:deploy
  • 重新部署:mvn cargo:redeploy
  • 取消部署:mvn cargo:undeploy

3. 使用Ant任务通过Maven部署

结合maven-antrun-plugin和WebLogic的Ant任务:

xml 复制代码
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>3.1.0</version>
    <executions>
        <execution>
            <phase>deploy</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <target>
                    <taskdef name="wldeploy" 
                             classname="weblogic.ant.taskdefs.management.WLDeploy"
                             classpath="${weblogic.home}/server/lib/weblogic.jar"/>
                    
                    <wldeploy action="deploy"
                              verbose="true"
                              debug="false"
                              name="${project.build.finalName}"
                              source="${project.build.directory}/${project.build.finalName}.war"
                              adminurl="t3://localhost:7001"
                              user="weblogic"
                              password="welcome1"
                              targets="AdminServer"
                              upload="true"/>
                </target>
            </configuration>
        </execution>
    </executions>
</plugin>

4. 使用WebLogic Deployer工具

WebLogic 12.2.1及以上版本提供了新的部署工具:

xml 复制代码
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>3.1.0</version>
    <executions>
        <execution>
            <id>deploy-app</id>
            <phase>deploy</phase>
            <goals>
                <goal>exec</goal>
            </goals>
            <configuration>
                <executable>${weblogic.home}/oracle_common/common/bin/wlst.sh</executable>
                <arguments>
                    <argument>${basedir}/src/main/scripts/deploy.py</argument>
                    <argument>${project.build.directory}/${project.build.finalName}.war</argument>
                </arguments>
            </configuration>
        </execution>
    </executions>
</plugin>

对应的deploy.py脚本示例:

python 复制代码
connect('weblogic', 'welcome1', 't3://localhost:7001')
deploy('myapp', '/path/to/app.war', targets='AdminServer')
startApplication('myapp')
disconnect()

安全配置建议

  1. 不要在pom.xml中硬编码密码

    xml 复制代码
    <configuration>
        <user>${weblogic.username}</user>
        <password>${weblogic.password}</password>
    </configuration>

    然后在settings.xml中配置:

    xml 复制代码
    <servers>
        <server>
            <id>weblogic-server</id>
            <username>weblogic</username>
            <password>welcome1</password>
        </server>
    </servers>
  2. 使用加密密码

    xml 复制代码
    <password>{DES}encrypted_password</password>

多环境部署配置

xml 复制代码
<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <weblogic.adminurl>t3://dev-server:7001</weblogic.adminurl>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <weblogic.adminurl>t3://prod-server:7001</weblogic.adminurl>
        </properties>
    </profile>
</profiles>

使用命令指定环境:mvn deploy -Pprod

常见问题解决

  1. ClassNotFoundException: weblogic.Deployer

    确保weblogic.jar在类路径中,可以通过设置weblogic.home属性指定WebLogic安装目录。

  2. 认证失败

    检查用户名/密码是否正确,确保用户有部署权限。

  3. 连接超时

    检查WebLogic服务器是否运行,网络是否通畅,防火墙设置。

  4. 版本不兼容

    确保插件版本与WebLogic服务器版本匹配。

以上方法可以根据项目需求选择使用,官方WebLogic Maven插件通常是最简单直接的选择。

相关推荐
保利九里6 分钟前
数据类型转换
java·开发语言
Uranus^9 分钟前
使用Spring Boot与Spring Security构建安全的RESTful API
java·spring boot·spring security·jwt·restful api
Aiden Targaryen11 分钟前
Windows/MacOS WebStorm/IDEA 中开发 Uni-App 配置
java·uni-app·webstorm
啾啾Fun21 分钟前
【Java微服务组件】分布式协调P1-数据共享中心简单设计与实现
java·分布式·微服务
神经毒素1 小时前
WEB安全--Java安全--shiro550反序列化漏洞
java·安全·web安全·shiro
hnlucky1 小时前
Windows 上安装下载并配置 Apache Maven
java·hadoop·windows·学习·maven·apache
forestsea2 小时前
Maven 插件扩展点与自定义生命周期
java·maven
中国lanwp2 小时前
使用Maven和Ant上传文件到Linux服务器
linux·服务器·maven
keke103 小时前
Java【14_2】接口(Comparable和Comparator)、内部类
java·开发语言
CN.LG3 小时前
Java 乘号来重复字符串的功能
java·开发语言