4

我已经从 weblogic-maven-plugin (10.3) 迁移到 wls-maven-plugin(12.1) 并遇到了部署共享库的问题。

问题是 wls-maven-plugin 没有传递给 Weblogic.Deployer 库标志。对于 weblogic-maven-plugin 我有相同的配置:

<plugin> 
                <groupId>com.oracle.weblogic</groupId> 
                <artifactId>weblogic-maven-plugin</artifactId> 
                <version>10.3.6.0</version> 
                <configuration> 
                    <adminurl>t3://localhost:7001</adminurl>
                    <user>${weblogic.username}</user> 
                    <password>${weblogic.password}</password> 
                    <upload>true</upload>                                             
                    <source>${project.build.directory}/${project.build.finalName}.${project.packaging}</source>                                         
                    <name>${project.build.finalName}</name>
                    <isLibrary>true</isLibrary>
                </configuration>
</plugin>

元素 isLibrary 显示插件传递调用 Weblogic.Deployer 的 -library 标志。

迁移到 wls 插件后:

<plugin> 
                <groupId>com.oracle.weblogic</groupId> 
                <artifactId>wls-maven-plugin</artifactId> 
                <version>12.1.1.0</version> 
                <configuration> 
                    <adminurl>t3://localhost:7001</adminurl>
                    <user>${weblogic.username}</user> 
                    <password>${weblogic.password}</password> 
                    <middlewareHome>${env.MW_HOME}</middlewareHome>
                    <upload>false</upload> 
                    <action>deploy</action>                   
                    <remote>false</remote> 
                    <isLibrary>true</isLibrary>
                    <verbose>true</verbose>                         <source>${project.build.directory}/${project.build.finalName}.${project.packaging}</source> 
                    <name>${project.build.finalName}</name> 
                </configuration>                   
</plugin> 

但是 wls 插件不会将 -library 标志传递给 Weblogic.Deployer,结果 jar 以未知类型部署,因此我的应用程序无法使用库,因为没有找到它。

注意:如果我使用 Weblogic.Deployer 手动部署一切正常 - 所以我的清单和 weblogic-application.xml 文件应该是正确的。

4

4 回答 4

0

以下是要遵循的步骤:

  1. 识别 oracle-maven-sync pom 文件和 jar。将 pom 文件编辑为您的 maven 版本。安装它们: mvn -e install:install-file -DpomFile=oracle-maven-sync.12.1.2.pom -Dfile=oracle-maven-sync.12.1.2.jar

  2. 将以下依赖项添加到您的存储库: jdom-1.1 maven-artifact maven-compat maven-plugin-api commons-codec-1.6 commons-io-2.2

  3. 在本地计算机上创建一个文件夹,在其中放置以下 Weblogic 依赖项:

weblogic_dependencies
                     |
                     --wlserver
                               |
                               - 服务器
                                       |
                                       --lib
                                            -- weblogic.jar
                     |
                     --模块

(从 weblogic 安装复制 wlserver/server/lib/weblogic.jar 和 wlserver/modules 文件夹下的所有文件)。将 MW_HOME 设置为指向weblogic_dependencies文件夹。

  1. 从安装了 Weblogic 的机器上运行以下命令: mvn -e -X -U com.oracle.maven:oracle-maven-sync:push -DserverId=archiva_repository_id_from_maven_config_xml -Doracle-maven-sync.oracleHome=%MW_HOME %

  2. mvn -U archetype:crawl -Dcatalog=c:.m2\archetype-catalog.xml

  3. 在您的工件存储库上部署 wls-maven-plugin(请参阅Oracle 文档!)。

    • 没有 middlewareHome 参数的远程部署(可能不起作用):

      mvn clean package com.oracle.weblogic:wls-maven-plugin:deploy -Dadminurl=t3://admin_server_ip:7001 -Duser=weblogic_user -Dpassword=weblogic_pass -Dtargets=SRV_7011 -Dupload=true -Dname=maven_project_id

    • 使用 -DmiddlewareHome=%MW_HOME% 参数进行远程部署:

      mvn clean package com.oracle.weblogic:wls-maven-plugin:deploy -Dadminurl=t3://admin_server_ip:7001 -Duser=weblogic_user -Dpassword=weblogic_pass -Dtargets=SRV_7011 -Dupload=true -Dname=maven_project_id -Dverbose=true -DmiddlewareHome=%MW_HOME%

于 2014-03-24T08:57:38.487 回答
0

解决方法是 wls:wlst。调用自己的 wlst 脚本(应该由自己编写 - 很简单)并从 maven 传递参数,例如部署源、url、用户/密码(使用 WLST 命令部署我们可以传递库参数)。它的工作很好,但在我看来看起来很糟糕。另外,我认为可以使用 ant 任务并调用 weblogic.deployer 来完成(无论如何,maven 插件和 wlst 调用 weblogic deployer 应用程序 - 它只是包装器)。

于 2013-08-03T10:28:58.257 回答
0

恕我直言,它比提供的答案更简单。

通过仔细查看Oracle 文档页面,您可以看到有一个配置选项library声明:部署为共享 Java EE 库或可选包。

此设置也需要该 artifactLocation选项。

下面的代码运行顺利,并将 CommonLibs 模块部署为库:

<build>
            <finalName>CommonLibs</finalName>
            <plugins>
                <plugin>
                    <groupId>com.oracle.weblogic</groupId>
                    <artifactId>weblogic-maven-plugin</artifactId>
                    <version>12.2.1.3</version>
                    <configuration>
                        <user>USER_NAME</user>
                        <password>PASS_WORD</password>
                        <name>${project.build.finalName}</name>
                        <source>${project.build.directory}/${project.build.finalName}.${project.packaging}</source>
                        <artifactLocation>${project.build.directory}/${project.build.finalName}.${project.packaging}</artifactLocation>
                        <library>true</library>
                    </configuration>
                    <executions>
                        <execution>
                            <id>up</id>
                            <phase>pre-integration-test</phase>
                            <goals>
                                <goal>deploy</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
于 2018-12-18T14:11:05.433 回答
0

在 Maven 插件中,没有“isLibrary”真正的标签可以部署为库

于 2016-01-29T23:13:51.210 回答