пятница, 13 августа 2010 г.

Weblogic Maven plugin

Maven наше все :) пока только в восторге от неосновных возможносте данной системы.

У нас есть Сontinuous Integration сервер - Hudson. Отличная штука, работает как часики. Но было единственное, чего мне не хватало - возможности автоматической публикации результатов текущего build trunk-а на WebLogic. Известно, что Hudson может выполнять плагины от maven. А в maven, в свою очередь, есть плагин weblogic-maven-plugin. Не смотря на то, что он позиционируется на версии WebLogic се старше 9.0, прекрасно справляется и с WebLogic 10.3.


Настройка.
Настройка плагина заключается в конфигурировании pom.xml проекта и удовлетворении зависимостей модуля.
Pom.xml
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>weblogic-maven-plugin</artifactId>
        <version>2.9.1</version>
        <executions>
            <execution>
                <phase>deploy</phase>
                <goals>
                    <goal>deploy</goal>
                    <goal>start</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <name>GreetingsEA</name>
            <adminServerHostName>weblogicserver.ru</adminServerHostName>
            <adminServerPort>7001</adminServerPort>
            <adminServerProtocol>t3</adminServerProtocol>
            <userId>user</userId>
            <password>password</password>
            <upload>true</upload>
            <remote>true</remote>
            <verbose>false</verbose>
            <debug>false</debug>
            <targetNames>AdminServer</targetNames>
            <noExit>true</noExit>
        </configuration>
        <dependencies>
            <dependency>
                <groupId>weblogic</groupId>
                <artifactId>wlfullclient</artifactId>
                <version>10.3.1.0</version>
            </dependency>
            <dependency>
                <groupId>weblogic</groupId>
                <artifactId>com.bea.core.descriptor.wl</artifactId>
                <version>1.1.0.0</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    </plugin> 

    Удовлетворение зависимостей модуля
    Тут все немного сложнее. Изначально maven-release-plugin зависит от 17 библиотек.
    • bea\modules\com.bea.core.descriptor.wl_1.1.0.0.jar
    • bea\modules\com.bea.core.descriptor_1.4.0.0.jar
    • bea\modules\com.bea.core.management.core_2.3.0.0.jar
    • bea\modules\com.bea.core.management.jmx_1.1.0.0.jar
    • bea\modules\com.bea.core.weblogic.lifecycle_1.1.0.0.jar
    • bea\modules\com.bea.core.weblogic.security.digest_1.0.0.0.jar
    • bea\modules\com.bea.core.weblogic.security.identity_1.1.0.0.jar
    • bea\modules\com.bea.core.weblogic.security.wls_2.0.1.0.jar
    • bea\modules\com.bea.core.weblogic.security_2.0.1.0.jar
    • bea\modules\com.bea.core.weblogic.socket.api_1.0.0.0.jar
    • bea\modules\com.bea.core.weblogic.workmanager_1.4.0.0.jar
    • bea\modules\javax.enterprise.deploy_1.2.jar
    • bea\wlserver_10.3\server\lib\wljmsclient.jar
    • bea\wlserver_10.3\server\lib\wls-api.jar
    • bea\wlserver_10.3\server\lib\wlsafclient.jar
    • bea\wlserver_10.3\server\lib\weblogic.jar
    • bea\wlserver_10.3\server\lib\webserviceclient.jar
    Заносить каждую из них в maven-репозиторий несколько утомительно, поэтому был придуман более гуманный способ, который сокращает число зависимостей до 3:
    1. %ORACLE_HOME%/bea/modules//webservicesclient.jar
    2. %ORACLE_HOME%/bea/modules/com.bea.core.descriptor.wl_1.1.0.0.jar
    3. wlfullclient.jar
    С 1 и 2 библиотеками все более или менее просто - мы их находим по указанному пути и добавляем в репозиторий:
    mvn deploy:deploy-file -DgroupId=weblogic -DartifactId=webserviceclient -Dversion=10.3 -Dpackaging=jar -Dfile=webserviceclient.jar 
    mvn deploy:deploy-file -DgroupId=weblogic -DartifactId=com.bea.core.descriptor.wl -Dversion=1.1.0.0 -Dpackaging=jar -Dfile=com.bea.core.descriptor.wl_1.1.0.0.jar
    
    Для wlfullclient.jar нужно зайти в %WL_HOME%/server/lib и выполнить команду для сбора этой библиотеки:
    java -jar wljarbuilder.jar
    
    и после этого выполнить привычный deploy
    mvn deploy:deploy-file -DgroupId=weblogic -DartifactId=wlfullclient -Dpackaging=jar -Dfile=wlfullclient.jar -Dversion=10.3.1.0 -DrepositoryId=<repositoryId> -Durl=<repositoryUrl>

    Все готово.
    Можно идти в проект и выполнить команду
    mvn weblogic:deploy 

    далее в Hudson можно прописать дополнительный maven-goal:


    Ссылки.

    Комментариев нет:

    Отправить комментарий