4장. 개발환경 구성

Name

Date

Reason For Changes

Version

오픈나루

2013/11

Initial Version

1.0

전준식, jjeon@opennaru.com

2018/02

Second Version

2.0

이번 장에서는 애플리케이션 개발 환경 구성방법을 살펴보자. 개발환경을 구축하기 위해서 Eclipse 설치/ Eclipse 에 JBoss 등록과 인스턴스 관리/ Eclipse 플러그인 설치 방법들을 살펴본다. 효과적인 개발환경 구성을 위하여 ‘JBoss AS Tools’ 라는 Eclipse 플러그인 설치와 자동 빌드 도구인 메이븐(Maven)의 간략한 사용법과 메이븐 JBoss 플러그인의 사용법에 대해서도 설명한다.

04-1.Eclipse 설치 및 JBossAS Tools 설치

Eclipse 다운로드

Eclipse 다운로드 페이지(http://www.eclipse.org/downloads/)에서 ‘Eclipse IDE for Java EE Developers’를 다운로드 받는다. 대부분 독자들의 개발 환경은 Windows운영체제를 사용하기 때문에 Windows 운영체제에서 설치하는 방법을 설명한다.

image

그림 1. Eclipse 다운로드 페이지

JBoss Tools 설치하기

다음 표를 참고하여 JBoss EAP버전과 Eclipse 지원 버전을 확인하여 해당 버전에 맞는 JBoss Tools 버전을 선택한다. 최신 버전인 Eclipse 4.3 Kepler를 사용하면 JBoss Tools 4.1 버전을 설치하면 된다. JBoss Developer Studio는 레드햇에서 제공하는 Eclipse 기반 개발환경으로 JBoss Tools가 포함된 제품이다.

Eclipse JBoss Tools JBoss Developer Studio JBoss EAP

3.3.1.1/Europa

2.0.1

1.0

4.2

3.3.2/Europa

2.1.2

1.1

4.3

3.4/Ganymede

3.0

2.1

4.3, 5.0

3.5/Galileo

3.1

3.0

4.3, 5.0

3.6/Helios

3.2

4.x

4.3, 5.0

3.7/Indigo

3.3

5.0

4.3, 5.0, 6.0

4.2/Juno

4.0

6.0

4.3, 5.0, 6.0

4.3/Kepler

4.1

7.0

4.3, 5.0, 6.0, 6.1, 6.2

표 1. JBoss Tools 버전과 지원하는 Eclipse 버전

Eclipse 마켓 플레이스에서 JBoss Tools 설치 하기

Eclipse Kepler 에서 JBoss Tools 를 설치하려면 ‘Eclipse Marketplace’ 또는 ‘Install New Software’ 메뉴를 선택하면 된다.

‘JBoss Tools’ 를 검색하여 검색 결과 중 Eclipse 버전에 맞는 JBoss Tools 를 선택한다.

image

그림 2. 마켓 플레이스에서 JBoss Tools 검색

Eclipse에서 JBoss Tools 설치하기

따라하기

  1. 'Install New Software' 실행

  2. Available Software

  3. 레파지토리 등록

  4. JBossAS Tools 선택

  5. 설치 상세 정보

  6. 라이선스 보기

마켓 플레이스에서 JBoss Tools를 검색하여 설치하면, 자동으로 레파지토리가 추가된다. 따라서 아래의 순서 중 1~3까지가 생략된다. 마켓 플레이스를 사용할 수 없는 Eclipse 버전일 경우엔 ①번부터 따라하면 된다.

  1. 'Install New Software' 실행

    Eclipse Kepler 실행 후 Help Install New Software를 선택한다.

    image

  1. Available Software

    image

  1. 레파지토리 등록

    다음 URL로 Kepler JBoss Tools Repository를 추가한다.

    image

  1. JBossAS Tools 선택

    JBoss Tools JBossAS Tools와 JBoss Maven Integration을 선택한다. 다양한 JBoss Tools들을 제공하고 있어 필요한 플러그인을 설치하여 사용할 수 있다.

    image

  1. 설치 상세 정보

    선택한 플러그인이 표시된다.

    image

  1. 라이선스 보기

    License Agreement 화면이 표시된다. ‘Finish’ 버튼을 클릭하면 설치되고, 이클립스를 재 시작하면 된다.

    image

파일을 사용하여 JBoss Tools 설치하기

직접 외부 네트워크에 연결할 수 없는 상황이라면, 다음과 같이 JBoss Tools 플러그인을 다운로드하여 설치하는 방법을 사용할 수 있다.

따라하기

  1. JBoss Tools 다운로드

  2. 다운로드 파일을 Archive 지정

  3. 필요한 플러그인 선택

  4. 라이선스 동의

  5. 이클립스 재시작

  1. JBoss Tools 다운로드

    다음의 URL 에서 Eclipse 버전에 맞는 JBoss Tools 다운로드한다.

    image

  1. 다운로드 파일을Archive 지정

    Download 한 JBoss Tools ZIP파일을 Archive 로 지정한다.

    image

  1. 필요한 플러그인 선택

    JBossAS Tools 와 Maven Integration을 선택한다.

    image

    선택한 플러그인 확인한다.

    image

  1. 라이선스동의

    image

  1. 이클립스 재시작

    설치 후 Eclipse를 재시작한다.

    image

JBoss EAP 6 서버 등록

JBoss EAP 6 서버 인스턴스를 Eclipse에 등록하면, Eclipse 환경에서 서버 인스턴스를 시작, 종료할 수 있다. 또, 개발중인 애플리케이션 프로젝트에 대한 디버깅을 할 수 있다.

Windows 운영체제에 d:\Java\jboss-eap-6.2 디렉터리에 JBoss EAP 6.2 버전이 설치되어 있다. ZIP파일의 압축을 풀어 놓은 디렉터리이다.

따라하기

  1. 'Server' 윈도우 표시

  2. Servers 선택

  3. Servers 탭 선택

  4. 새로운 서버 등록

  5. JBoss EAP 6.2 홈디렉터리 지정

  6. JRE 선택

  7. JDK 1.7 선택

  8. JBoss 실행 환경 설정

  9. 새로운 JBoss 서버 추가

  10. JBoss EAP 6.2 런타임 인스턴스 확인

  1. ’Server’ 윈도우 표시

    Window Show View Other 에서 Server 윈도우를 표시

    image

  1. Servers 선택

    image

  1. Servers 탭 선택

    Eclipse 하단의 Servers 탭을 선택하고, 새로운 서버를 등록하는 링크를 클릭한다.

    image

  1. 새로운 서버 등록

    JBoss Enterprise Middleware’를 확장하고 ‘JBoss Enterprise Application Platform 6.1+’ 를 선택한다. 다음 ‘Next’ 버튼을 클릭한다.

    image

  1. JBoss EAP 6.2 홈디렉터리 지정

    ‘Browse’를 클릭하고 JBoss EAP 6.2가 설치된 위치로 이동한다. 다음 ‘Next’를 클릭한다.

    image

  1. JDK 1.7 디렉터리 선택

    Eclipse에서 컴파일하려면 기본으로 설정되어 있는 JRE가 아닌 JDK를 사용하여야 한다. ‘JRE’ 버튼을 클릭하여 JDK 1.7을 선택한다.

    image

  1. JDK 1.7 선택

    등록한 JDK 1.7을 기본 Java로 선택한다.

    image

  1. 서버 실행환경 설정

    등록한 JDK 1.7을 JRE로 선택한다.

    image

  1. 새로운 JBoss Server 추가

    모든 네트워크 인터페이스에서 JBoss의 포트를 사용할 수 있도록 옵션을 선택한다.

    image

  1. JBoss EAP 6.2 런타임 인스턴스 확인

    등록한 서버 인스턴스를 확인한다. Eclipse에서 JBoss EAP 6.2 서버를 시작, 종료할 수 있다.

    image

메이븐 로컬 레파지토리 구성

메이븐 레파지토리를 구성하는 방법에는 로컬 파일 시스템을 이용하는 방법, 아파치 웹 서버를 이용하는 방법과 넥서스(Nexus)와 같은 메이븐 레파지토리 관리 프로그램을 설치하여 사용하는 방법이 있다. 여기서는 로컬 파일 시스템에 JBoss EAP 6 메이븐 레파지토리를 다운로드하여 설치하는 방법을 사용한다. 이 방법이 설정이 가장 간단하고, 로컬 컴퓨터에서 바로 사용할 수 있기 때문이다.

따라하기

  1. 메이븐 레파지토리 다운로드

  2. JDK 설치

  3. java alternative 설정

  4. Java 버전 확인

  1. 메이븐 레파지토리 다운로드

    목록에서 "Application Platform 6.2.0 Maven Repository " [다운로드] 버튼을 클릭하여 jboss-eap-6.2.0-maven-repository.zip 파일을 다운로드 한다.

    image

  1. 압축 풀기

    다운로드한 jboss-eap-6.2.0-maven-repository.zip 파일의 압축을 풀면 ‘jboss-eap-6.2.0.GA-maven-repository’ 디렉터리가 생성된다.

    “jboss-eap-6.2.0.GA-maven-repository” 디렉터리 아래의 내용들을 ①에서 확인한 .m2/ 디렉터리 하위의 repository/로 모두 복사한다.

  1. Eclipse 로컬 레파지토리 설정

    image

    메이븐에 대한 자세한 내용은 이번 장의 마지막 부분에 있는 메이븐(maven) 챕터를 참고하라.

JBoss EAP 6퀵스타트 애플리케이션 실행

따라하기

  1. JBoss EAP 6.2 Quick Start 다운로드

  2. Import

  3. Existing Maven Projects 선택

  4. Projects Import

  5. 프로젝트 Maven Update

  6. 프로젝트 실행하기

  7. JBoss Runtime환경 설정

  8. 실행확인

  1. JBoss EAP 6.2 Quick Start 다운로드

    웹 브라우저에서 https://access.redhat.com/jbossnetwork/restricted/listSoftware.html?product=appplatform 에 접속한다. 목록에서 ‘Application Platform 6.2.0 Quickstarts’은 선택하여 jboss-eap-6.2.0-quickstarts.zip 파일을 다운로드 한다. 원하는 디렉터리에 압축을 해제한다.

    image

  1. Import

    Eclipse를 시작한다. 메뉴에서 ‘File’ → ‘Import’를 선택한다

    image

  1. Existing Maven Projects 선택

    목록에서 ‘Maven’ → ‘Existing Maven Projects’를 선택하고 ‘Next’를 선택한다.

    image

  1. Projects Import

    압축을 풀어 놓은 퀵 스타트 디렉터리 경로를 지정하고 OK 를 클릭한다. 모든 퀵 스타트 프로젝트의 pom.xml 파일 목록이 Projects 목록 상자에 나타난다.

    image

  1. 프로젝트 Maven Update

    실행하려는 프로젝트를 Eclipse 프로젝트 리스트에서 선택한 후 마우스 오른쪽 버튼을 클릭하여 ‘Maven’ ‘Update Project’를 선택한다.

    image

  1. 프로젝트 실행하기

    Project 가 정상적으로 빌드된 후 실행한다.

    image

  1. JBoss Runtime환경 설정

    jboss-helloworld 프로젝트를 배포할 서버를 선택한다.

    image

  1. 실행확인

    서버가 실행되고, 선택한 jboss-helloworld 애플리케이션이 배포된다. Eclipse에 내장된 브라우저에서 실행 결과가 표시된다.

    image

Welcome 애플리케이션 변경

JBoss EAP 6를 실행한 후 브라우저에서 8080번 포트로 접속하면, Welcome 애플리케이션이 나타난다. 이번 장에서는 Welcome 애플리케이션을 제거하고, 작성된 애플리케이션을 루트 컨텍스트로 교체하는 방법을 살펴본다.

따라하기

  1. CLI 명령 실행

  2. jboss-web.xml 작성

  1. CLI 명령 실행

    $JBOSS_HOME/bin/jboss-cli.sh 를 실행하여 다음 명령을 입력한다.
    
    [standalone@localhost:9999 /] /subsystem=web/virtual-server=default-host:write-attribute(name=enable-welcome-root,value=false)
    
    {
      "outcome" => "success",
      "response-headers" => {
        "operation-requires-reload" => true,
        "process-state" => "reload-required"
      }
    }
  1. jboss-web.xml 작성

    웹 애플리케이션을 루트 컨텍스트(/)로 사용하려면 WEB-INF/ 디렉터리에 있는 jboss-web.xml 을 변경해야 한다. jboss-web.xml 의 내용을 다음과 같이 변경한다.

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 5.0//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd">
    
    <jboss-web>
      <context-root>/</context-root>
    </jboss-web>

04-2.메이븐

메이븐 저장소

Apache Maven은 Java 애플리케이션 개발에 있어 소프트웨어 프로젝트의 생성, 관리, 빌드에 사용되는 분산 빌드 자동화 도구이다. 메이븐(maven)은 프로젝트 객체 모델(POM; Project Object Model)이라는 표준 설정 파일을 이용하여 프로젝트의 정의 및 빌드 과정을 관리할 수 있다. POM은 모듈 또는 컴포넌트 종속 관계, 빌드의 순서 및 프로젝트 패키징 결과를 XML 파일을 사용하여 정의한다. 이렇게 하여 프로젝트가 완전히 통일된 상태로 빌드되도록 한다.

메이븐은 저장소를 사용한다. 메이븐 저장소에는 Java 라이브러리, 플러그인 및 기타 아티팩트가 들어 있다. 기본 공용 저장소는 Maven 2 Central Repository 이지만, 여러 개발 팀간에 공통 아티팩트를 공유해야 한다면 회사의 내부 저장소를 구성하여 사용할 수도 있다. 또 타사 저장소도 있다. JBoss EAP 6는 Java EE 개발자가 일반적으로 JBoss EAP 6애플리케이션을 빌드할 때 사용하는 것들을 제공되어 있다. JBoss EAP 6저장소를 프로젝트를 사용할 수 있도록 설정하려면 ‘JBoss Enterprise Application Platform의 메이븐 저장소 구성’ 문서를 참조한다.

저장소는 원격으로 할 수도 있고 로컬로 할 수도 있다. 원격 저장소는 웹 서버의 저장소 설정 시에는 ‘http://’를 사용하고, 파일 서버 저장소는 ‘file://’ 라는 프로토콜을 사용하도록 설정한다. 로컬 저장소는 원격 저장소에서 아티팩트를 다운로드하여 캐시한 것이다.

메이븐에 대한 자세한 정보는 ‘http://maven.apache.org/’을 참조한다.

또 메이븐 저장소의 정보는 ‘http://maven.apache.org/repository’ 를 확인하라.

메이븐POM 파일에 대한 자세한 정보는 ‘http://maven.apache.org/pom.html’에서 확인할 수 있다.

메이븐 POM 파일

프로젝트 객체 모델(POM) 파일은 프로젝트를 빌드하기 위해 메이븐에서 사용되는 설정 파일이다. POM 파일은 XML 파일에서 프로젝트 정보와 빌드 방법을 포함하고 있다. 여기에는 소스 및 테스트 디렉터리 위치, 프로젝트 의존성 플러그인 저장소 등 수행 할 수 있는 골(goal)이 포함되어 있다. 또한 버전, 세부 사항, 개발자 메일링 리스트, 라이센스 등 프로젝트에 대한 추가 정보도 포함된다. pom.xml 파일의 스키마는 http://maven.apache.org/maven-v4_0_0.xsd에 있다.

POM 파일 구조

POM파일 최소 요구 사항

pom.xml 파일의 최소 요구 사항은 다음과 같다.

  • 프로젝트 루트

  • modelVersion

  • groupId - 프로젝트 그룹 ID

  • artifactId - 아티팩트(프로젝트)의 ID

  • version - 버전

샘플 pom.xml 파일

기본적인 pom.xml 파일의 구성은 다음과 같다.

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>Maven Quick Start Archetype</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
    </dependency>
  </dependencies>
</project>

메이븐 설정 파일

메이븐의 settings.xml 파일에는 메이븐에 대한 사용자 별 설정 정보가 포함되어 있다. 개발자 ID, 프록시 정보, 로컬 저장소의 위치 등 pom.xml 파일에서 배포되는 사용자 별 설정이 포함되어 있다.

settings.xml 은 다음 위치에 설정 가능하다.

  • 메이븐 설치파일 위치

    • 설정 파일은 $M2_HOME/conf/ 디렉터리에 있다. 이러한 설정은 global 설정이라고 한다. 기본 메이븐 설정 파일을 복사하여 이를 바탕으로 사용자 설정 파일을 설정할 수 있다.

  • 사용자 설치위치

    • 설정 파일은 $USER_HOME/. m2/ 디렉터리에 있다. 메이븐 설치디렉터리와 사용자 settings.xml 파일이 둘 다 있으면 내용이 병합된다. 중복된 내용이 있는 경우에는 사용자 settings.xml 파일이 우선된다.

      다음은 JBoss EAP 6의 로컬 디렉터리로 메이븐 레파지토리를 구성한 settings.xml 파일의 예이다.

      <Settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
        <profiles>
          <!- Configure the JBoss EAP Maven repository ->
          <profile>
            <id>jboss-eap-maven-repository</id>
            <repositories>
              <repository>
              <id>jboss-eap</id>
              <url>file:///path/to/repo/jboss-eap-6.2-maven-repository</url>
              <releases>
              <enabled>true</enabled>
              </releases>
              <snapshots>
              <enabled>false</enabled>
              </snapshots>
              </repository>
            </repositories>
            <pluginRepositories>
              <pluginRepository>
                <id>jboss-eap-maven-plugin-repository</id>
                <url>file:///path/to/repo/jboss-eap-6.2-maven-repository</url>
                <releases>
                  <enabled>true</enabled>
                </releases>
                <snapshots>
                  <enabled>false</enabled>
                </snapshots>
              </pluginRepository>
            </pluginRepositories>
          </profile>
        </profiles>
        <activeProfiles>
          <!- Optionally, make the repository active by default ->
          <activeProfile>jboss-eap-maven-repository</activeProfile>
        </activeProfiles>
      </settings>

settings.xml 파일의 스키마는 http://maven.apache.org/xsd/settings-1.0.0.xsd 에 있다.

메이븐 실행

메이븐의 실행 명령은 다음과 같다.

mvn [options] [<goal(s)>] [<phase(s)>]

메이븐의 명령은 옵션, 골, 페이즈의 조합으로 실행할 수 있다. 메이븐에서 사용할 수 있는 옵션은 ‘mvn --help’ 명령을 실행하여 확인할 수 있다. 메이븐에서 가장 많이 사용하는 옵션 중의 하나는 -D 옵션일 것이다. 예를 들어 메이븐의 기본적인 라이프사이클에 있는 코드에 대한 단위 테스트 모듈을 실행하지 않도록 하려면, ‘mvn –Dmaven.test.skip=true [<phase(s)>]’와 같이 실행하면 된다.

메이븐에서 골와 페이즈를 조합하여 빌드를 실행할 수 있으며, 여러 개를 한꺼번에 실행하는 것도 가능하다.

mvn clean package` : `clean`과 `package`라는 페이즈를 실행한다.

mvn clean compiler:comple : clean 페이즈를 실행한 후, compiler`라는 플러그인의 `compile 골을 실행한다.

메이븐 라이프사이클

메이븐에서 미리 정의하고 있는 빌드 순서를 라이프사이클이라고 하며, 라이프사이클의 각 빌드 단계를 페이즈(phase)라고 한다.

라이프사이클은 여러 페이즈로 나뉘어져 있고, 각각의 페이즈들은 서로 의존 관계를 갖는다.

메이븐의 기본적인 라이프사이클은 다음 표와 같다.

페이즈 설명

compile

소스를 컴파일한다.

test

JUnit, TestNG와 같은 단위 테스트 프레임워크를 이용하여 단위테스트를 실행한다.

package

컴파일된 클래스 파일과 리소스 파일들을 WAR나 JAR 형태로 패키징한다.

install

패키징한 파일을 로컬 저장소에 배포한다. 로컬 저장소의 위치는 $USER_HOME/.m2 디렉터리다.

deploy

패키징한 파일을 원격 저장소에 배포한다.

clean

메이븐 빌드시 생성된 모든 산출물을 삭제한다.

site

메이븐 설정 파일의 정보를 이용하여 프로젝트 문서 사이트를 생성한다.

표 2. 메이븐의 기본 라이프사이클

페이즈와 골

메이븐에서 페이즈는 실제 빌드 작업을 하지 않는다. 그럼 누가 빌드 작업을 하는 것일까? 실제로 메이븐은 플러그인 구조로 구성되어 있으며, 정해진 페이즈에 연결된 플러그인의 골에서 실제 빌드 작업이 이루어지게 된다. 예를 들어 ‘mvn compile’ 이라고 했다면, 실제적인 컴파일 작업은 compile 페이즈와 연결되어 있는 compiler 플러그인의 compile 골이 실행되는 것이다.

image40 그림 3. 페이즈와 골과의 관계

의존성 관리

메이븐의 가장 큰 장점 중의 하나는 애플리케이션을 개발하는데 필요한 jar 라이브러리 모듈들에 대한 의존성 관리이다. 프레임워크 사용을 위해 필요한 파일을 다운로드 받아 프로젝트 내에 포함시키는 것이 아니라, POM 파일의 설정을 통해 필요한 라이브러리 파일들을 자동으로 로컬 저장소에 다운로드하고 애플리케이션에 사용할 수 있게 한다.

예를 들었던 POM 파일을 살펴보면 <dependency>에 junit 이 정의되어 있다. 여기에서는 junit 3.8.1 버전이 사용되고 있다. 메이븐 빌드를 실행하면 메이븐 중앙 저장소에서 junit 3.8.1 버전의 jar 파일을 자동으로 다운로드 받아 해당 프로젝트 컴파일에 사용한다.

<project>

… 중략 …

  <dependencies>

    <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <version>3.8.1</version>

      <scope>test</scope>

    </dependency>

  </dependencies>

</project>

기본적으로 메이븐은 중앙 저장소는 http://repo.maven.apache.org/maven2/ 이다. 필요한 모듈이 있으면 <dependency>에 pom 정의를 추가하기만 하면 자동으로 메이븐 중앙 저장소에서 필요한 jar 파일들을 다운로드 한다.

예를 들어 스프링 프레임워크를 프로젝트에 추가하려면 pom.xml 파일에 추가할 내용을 먼저 http://mvnrepository.com/ 에서 검색한다.

image

그림 4. 메이븐 레파지토리 검색

최신 버전인 3.2.4 버전의 spring-core 모듈에 대한 정보를 찾을 수 있었다. spring-core 3.2.4 버전 모듈에 대한 pom의 <dependency> 정의가 표시되고 있다. 이 내용을 사용할 프로젝트의 pom.xml의 <dependencies> 부분에 추가하면 spring-core에 dependency를 갖는 commons-logging, log4j 등의 jar 파일들도 함께 프로젝트의 클래스 패스에 추가되어 컴파일 시 사용된다.

Spring Framework에 대한 dependency가 추가된 pom.xml 파일은 다음과 같다.

<project>

… 중략 …

  <dependencies>

    <dependency>

      <groupId>org.springframework</groupId>

      <artifactId>spring-core</artifactId>

      <version>3.2.4.RELEASE</version>

    </dependency>

    <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <version>3.8.1</version>

      <scope>test</scope>

    </dependency>

  </dependencies>

</project>

플러그인

앞서 설명한 것과 같이 메이븐은 플러그인 구조로 구성되어 있다. 메이븐의 빌드 프로세스를 변경하기 위해, 추가적인 메이븐 플러그인을 사용하거나 이미 포함되어 있는 플러그인의 파라미터를 설정하기 위해서도 플러그인 설정을 한다.

추가적인 메이븐 플러그인들은 http://mojo.codehaus.org/plugins.html 에서 찾아볼 수 있다.

또, JBoss 서버를 구동하거나 빌드된 애플리케이션을 JBoss에 배포하기 위한 JBoss Deployment Plugin을 제공하고 있다. (http://docs.jboss.org/jbossas/7/plugins/maven/latest/)

JBoss Maven 플러그인을 사용하려면 pom.xml 파일의 <build> 하위에 jboss-as-maven-plugin을 아래와 같이 추가한다.

<project>
...
  <build>
  ...
    <plugins>
    ...
      <plugin>
        <groupId>org.jboss.as.plugins</groupId>
        <artifactId>jboss-as-maven-plugin</artifactId>
        <version>7.5.Final</version>
      </plugin>
    ...
    </plugins>
  ...
  </build>
...
</project>

jboss-as-maven-plugin을 설정하면 다음과 같이 jboss-as 플러그인을 사용하여 애플리케이션을 배포할 수 있다.

$ mvn jboss-as:deploy

$ mvn jboss-as:undeploy

이 외에도 JBoss 애플리케이션 서버에 대하여 사용할 수 있는 골은 jboss-as:add-resource, jboss-as:execute-commands(CLI 명령을 실행), jboss-as:run, jboss-as:shutdown, jboss-as:start 등이 있다.

또, JBoss EAP의 도메인 모드의 서버 그룹에 애플리케이션을 배포하려면 다음과 같이 메이븐 플러그인을 설정하면 된다.

<plugin>
  <groupId>org.jboss.as.plugins</groupId>
  <artifactId>jboss-as-maven-plugin</artifactId>
  <version>7.5.Final</version>
  <configuration>
    <domain>
      <server-groups>
        <server-group>**main-server-group**</server-group>
      </server-groups>
    </domain>
  </configuration>
</plugin>