Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to deploy .war file to JBoss AS 7 server using Maven?

Tags:

maven

jboss

I have "pom.xml" file which is connecting to maven and checking out the code and creating a war file. Now I have to deploy the created war file to JBoss Application Server 7. Below is my pom.xml.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org /2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0             http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.mycompany.deploy</groupId>
   <artifactId>deploy-app</artifactId>
   <packaging>war</packaging>
   <version>0.0.1-SNAPSHOT</version>
   <name>deploy-app Maven Webapp</name>
   <url>http://maven.apache.org</url>
   <scm>
      <connection>scm:svn:http://d-113017553/svn/PRONTO/trunk/dev</connection>
      <developerConnection>scm:svn:http://d-113017553/svn/PRONTO/trunk           /dev</developerConnection>
      <url>http://d-113017553/svn/PRONTO/trunk/dev</url>
   </scm>
   <dependencies>
      <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>3.8.1</version>
         <scope>test</scope>
      </dependency>
   </dependencies>
   <build>
      <finalName>deploy-app</finalName>
      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-scm-plugin</artifactId>
            <version>1.8.1</version>
            <configuration>
               <connectionType>connection</connectionType>
               <username>keerthana</username>
               <password>keerthana</password>
               <checkoutDirectory>${project.basedir}/co/src</checkoutDirectory>
               <workingDirectory>${project.basedir}/co/src</workingDirectory>
            </configuration>
         </plugin>
         <plugin>
            <artifactId>maven-release-plugin</artifactId>
            <version>2.2.2</version>
            <configuration>
               <releaseProfiles>release</releaseProfiles>
               <goals>scm:checkout</goals>
            </configuration>
         </plugin>
         <plugin>
            <groupId>org.jboss.as.plugins</groupId>
            <artifactId>jboss-as-maven-plugin</artifactId>
            <version>7.3.Final</version>
            <configuration>
               <jboss_Home>D:\Workspace\deploy-app\target</jboss_Home>
               <serverName>default</serverName>
               <fileName>target/deploy-app.war</fileName>
            </configuration>
         </plugin>
      </plugins>
   </build>
</project>

Please give me the steps to deploy my war file to the Jboss Server.

like image 706
Keerthana Avatar asked Jun 28 '13 04:06

Keerthana


People also ask

Can we deploy WAR file in JBoss?

We can create a dynamic web project in Eclipse, add a JBoss server and then configure the application to run on the server. Internally, Eclipse will create the war file of the application and place it in the JBoss directory. We can create an index. html file and set the welcome-file in web.

Can we deploy two WAR files in JBoss?

Yes, You can deploy two or more WAR/EAR files in the JBoss Application server.


1 Answers

First, use bin/add-user.sh to add management user.

Then, store that into your settings.xml.

<profiles>

    <profile>
        <id>myproject-prod<id>
        <activation><activeByDefault>true</activeByDefault></activation>
        <properties>
            <myproject.deploy.pass.prod>mySecretPassword</myproject.deploy.pass.prod>
        </properties>
    </profile>

</profiles>

Then, configure the pom.xml.

<properties>
    <jboss-as.deploy.hostname>localhost</jboss-as.deploy.hostname>  <!-- Where to deploy. -->
    <jboss-as.deploy.user>admin</jboss-as.deploy.user>
    <jboss-as.deploy.pass>${myproject.deploy.pass.prod}</jboss-as.deploy.pass>
    <plugin.war.warName>${project.build.finalName}</plugin.war.warName>
</properties>

...

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
                <warName>${plugin.war.warName}</warName>
            </configuration>
        </plugin>            

        <!-- JBoss AS plugin to deploy the war. -->
        <plugin>
            <groupId>org.jboss.as.plugins</groupId>
            <artifactId>jboss-as-maven-plugin</artifactId>
            <version>7.4.Final</version>
            <configuration>
                <force>true</force>
                <hostname>${jboss-as.deploy.hostname}</hostname>
                <username>${jboss-as.deploy.user}</username>
                <password>${jboss-as.deploy.pass.prod}</password>
                <fileNames>
                    <fileName>target/${plugin.war.warName}.war</fileName>
                </fileNames>
            </configuration>
        </plugin>
    </plugins>

and then simply...

mvn clean deploy;

This is reduced from one JBoss project, may contain typos, but should work.

like image 101
Ondra Žižka Avatar answered Sep 30 '22 03:09

Ondra Žižka