Utiliser maven comme outil de compilation pour Weblogic 10.3
-
08-07-2019 - |
Question
J'essaie de configurer Weblogic Server 10.3 (et Portal, etc.) pour utiliser maven comme outil de génération. . J'essaie de trouver un tutoriel ou une documentation décente pour le faire. Il existe des tutoriels pour les anciennes versions comme 9.0, mais il y a peu d’informations pour la version 10.
Je cherche un moyen de créer le fichier auriculaire de weblogic avec Maven. Les gens font-ils réellement cela? L'utilisation de Maven vaut-elle la peine?
J'aimerais utiliser maven afin de faciliter l'intégration avec des outils d'intégration continue tels que Hudson .
modifier: il semble exister un moyen d'exporter directement les fichiers maven http://edocs.bea.com/wlw/docs102/guide/ideuserguide/build/conMavenScript.html . Mais ces fichiers sont de simples wrappers pour ant.
La solution
J'utilise maven pour créer un fichier EAR dans lequel je déploie WebLogic Server 10.3. Les parties les plus délicates étaient:
- Recherche de toutes les dépendances du plugin weblogic-maven
- Mettre toutes les dépendances dans le dépôt principal (je recommande vivement Sonatype Nexus )
- Définition de noExit sur true (sinon, vous aurez des problèmes avec Hudson!)
J'utilise la structure de répertoire suivante dans le projet EAR:
pom.xml
src/
main/
app/
META-INF/
weblogic-application.xml
Ce qui suit est extrait de mon fichier 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>
Autres conseils
Si votre Weblogic 10.3 se trouve sur votre machine locale, essayez d’utiliser Cargo . beaucoup plus facile à installer. Voici ce que je devais ajouter à 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/ est le plugin précédemment utilisé pour déployer des projets auditifs sur weblogic Mais cela semble fastidieux. Oracle a publié son successeur pour weblogic. Ce plugin est comparativement plus facile à utiliser et à configurer http: // download.oracle.com/docs/cd/E17904_01/web.1111/e13702/maven_deployer.htm
Vous pouvez également utiliser le plugin Maven ANTRUN comme illustré dans ce blog:
http://loutilities.wordpress.com/2012/06/20/use-your-maven-build-to-auto-deploy-to-weblogic-10-3/
Oracle fournit également un plug-in Maven: http: // docs .oracle.com / cd / E21764_01 / web.1111 / e13702 / maven_deployer.htm