wls-maven-plugin:部署共享库

时间:2013-05-28 15:19:23

标签: maven weblogic12c

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

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

<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部署的类型为unknown,因此我的应用程序无法使用库,因为找不到它。

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

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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的神器 Maven的COMPAT Maven的插件的API 公地编解码器1.6 公地-IO-2.2

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

  4. weblogic_dependencies
                         |
                         --wlserver
                                   |
                                   --server
                                           |
                                           --lib
                                                -- weblogic.jar
                         |
                         --modules
    

    (从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 documentation for that!)。

      • 没有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 < / p>

      • 使用-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%

答案 2 :(得分:0)

在maven插件中没有“isLibrary”真正的标记要部署为库

答案 3 :(得分:0)

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

仔细观察Oracle Documentation Page,您会发现有一个配置选项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>