我已经从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文件应该是正确的。
答案 0 :(得分:0)
解决方法是wls:wlst。调用自己的wlst脚本(应该是自己写的 - 这很简单)并从maven传递参数这样的部署源,url,用户/密码(使用WLST命令部署我们可以传递的是库参数)。它的工作很好,但我的观点看起来很糟糕。此外,我认为可以使用ant任务完成并调用weblogic.deployer(无论如何maven插件和wlst调用weblogic deployer应用程序 - 它只是包装器)。
答案 1 :(得分:0)
以下是要遵循的步骤:
识别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
向您的存储库添加以下依赖项: JDOM-1.1 Maven的神器 Maven的COMPAT Maven的插件的API 公地编解码器1.6 公地-IO-2.2
在本地计算机上创建一个文件夹,您可以在其中放置以下Weblogic依赖项:
weblogic_dependencies | --wlserver | --server | --lib -- weblogic.jar | --modules
(从weblogic安装中复制wlserver / server / lib / weblogic.jar和wlserver / modules文件夹下的所有文件)。将MW_HOME设置为指向 weblogic_dependencies 文件夹。
从安装了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%
mvn -U archetype:crawl -Dcatalog = c:.m2 \ archetype-catalog.xml
在你的工件库上部署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>