Utilizzo di maven come strumento di creazione per Weblogic 10.3
-
08-07-2019 - |
Domanda
Sto cercando di configurare Weblogic Server 10.3 (e Portal ecc.) per utilizzare maven come strumento di creazione . Sto cercando di trovare un tutorial o una documentazione decente su come farlo. Ci sono alcuni tutorial per le versioni precedenti come 9.0, ma ci sono poche informazioni per la versione 10.
Sto cercando un modo per creare il file ear di weblogic con Maven. La gente lo sta davvero facendo? L'uso di Maven vale la pena?
Vorrei usare Maven per una più facile integrazione con strumenti di integrazione continua come Hudson .
modifica: sembra esserci un modo per esportare direttamente i file di Maven http://edocs.bea.com/wlw/docs102/guide/ideuserguide/build/conMavenScript.html . Ma quei file sono semplici wrapper per formica.
Soluzione
Sto usando Maven per costruire un EAR che distribuisco un WebLogic Server 10.3. Le parti difficili sono state:
- Trovare tutte le dipendenze del plugin weblogic-maven
- Inserimento di tutte le dipendenze nel repository maven (consiglio vivamente Sonatype Nexus )
- Impostando noExit su true (altrimenti si verificheranno problemi in hudson!)
Uso la seguente struttura di directory nel progetto EAR:
pom.xml
src/
main/
app/
META-INF/
weblogic-application.xml
Quanto segue è tratto dal mio pom.xml:
<build>
<plugins>
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<configuration>
<displayName>My Project</displayName>
<earSourceDirectory>src/main/app</earSourceDirectory>
<modules>
<webModule>
<groupId>com.somecompany</groupId>
<artifactId>webapp</artifactId>
</webModule>
</modules>
</configuration>
</plugin>
<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>my-project</name>
<adminServerHostName>${wls.adminServerHostName}</adminServerHostName>
<adminServerPort>${wls.adminServerPort}</adminServerPort>
<adminServerProtocol>t3</adminServerProtocol>
<userId>${wls.userId}</userId>
<password>${wls.password}</password>
<upload>true</upload>
<remote>true</remote>
<verbose>false</verbose>
<debug>false</debug>
<targetNames>AdminServer</targetNames>
<noExit>true</noExit>
</configuration>
<dependencies>
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.5</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>weblogic</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>webservices</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.utils.full</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.i18n</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.weblogic.rmi.client</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>javax.enterprise.deploy</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>webserviceclient</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.weblogic.security.wls</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.weblogic.security.identity</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.weblogic.security</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>wlclient</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.transaction</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.utils.classloaders</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>wljmsclient</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.management.core</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>wls-api</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.descriptor</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.logging</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.weblogic.socket.api</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.weblogic.security.digest</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.weblogic.workmanager</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.weblogic.lifecycle</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.utils.wrapper</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>wlsafclient</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.management.jmx</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.descriptor.wl</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
Altri suggerimenti
Se il tuo Weblogic 10.3 si trova sulla casella locale, prova a utilizzare Cargo - È molto più facile da configurare. Ecco cosa ho dovuto aggiungere a pom.xml
:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<configuration>
<container>
<containerId>weblogic103x</containerId>
<home>/path/to/your/wlserver_10.3</home>
</container>
</configuration>
</plugin>
http://mojo.codehaus.org/weblogic-maven-plugin/ è il plugin precedentemente utilizzato per distribuire progetti orecchio alla weblogic Ma sembra noioso. Oracle ha rilasciato il suo plug-in successivo per weblogic. Questo plug-in è relativamente più facile da usare e configurare http: // download.oracle.com/docs/cd/E17904_01/web.1111/e13702/maven_deployer.htm
Puoi anche usare il plug-in MTREN ANTRUN, come ho illustrato in questo blog:
http://loutilities.wordpress.com/2012/06/20/use-your-maven-build-to-auto-deploy-to-weblogic-10-3/
Oracle fornisce anche un plug-in Maven: http: // docs .oracle.com / cd / E21764_01 / web.1111 / e13702 / maven_deployer.htm