2011-08-12 3 views
1

GlassFish의 Application Client Container에서 실행되는 Application Client를 사용하여 Maven 기반의 Enterprise Application을 만들려고합니다. 그것은 Netbeans "Enterprise Application"+ "Enterprise Application Client"에서 프로젝트 템플릿으로 togheter에 적합해야하지만 maven과 ant는 필요하지 않습니다.Java EE에서 Maven으로 "Application Client"생성

지금까지 나는 다음과 같은 한 프로젝트

  • 조립 메이븐 프로젝트
  • EAR-모듈 EJB 모듈
  • WEB-모듈 (귀 내부와 잘 작동)
  • 스윙 클라이언트 모듈
현재 내가 종속성이없는

<project xml... 
     <modules> 
     <module>shop-ear</module> 
     <module>shop-web</module> 
     <module>shop-ejb</module> 
     <module>shop-client</module> 
     </modules> 
    </project> 

가 이어 pom.xml 파일이

<project ...> 
    <modelVersion>4.0.0</modelVersion> 
    <parent> 
    <artifactId>shop</artifactId> 
    <groupId>my.package.name</groupId> 
    <version>1.0-SNAPSHOT</version> 
    </parent> 
    <groupId>ch.hslu.edu.enapp</groupId> 
    <artifactId>shop-ear</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>ear</packaging> 
    <!-- ... --> 
    <dependencies> 
    <dependency> 
     <groupId>my.package.name</groupId> 
     <artifactId>shop-ejb</artifactId> 
     <version>1.0-SNAPSHOT</version> 
     <type>ejb</type> 
    </dependency> 
    <dependency> 
     <groupId>my.package.name</groupId> 
     <artifactId>shop-web</artifactId> 
     <version>1.0-SNAPSHOT</version> 
     <type>war</type> 
    </dependency> 
    <dependency> 
     <groupId>my.package.name</groupId> 
     <artifactId>shop-client</artifactId> 
     <version>1.0-SNAPSHOT</version> 
     <type>jar</type> 
    </dependency> 
</dependencies> 

포함 그리고 스윙 클라이언트의 pom.xml이

<project xmlns=....> 
    <modelVersion>4.0.0</modelVersion> 
    <parent> 
     <artifactId>shop</artifactId> 
     <groupId>my.package.name</groupId> 
     <version>1.0-SNAPSHOT</version> 
    </parent> 

    <groupId>my.package.name</groupId> 
    <artifactId>shop-client</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 
    <name>shop-client</name> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jar-plugin</artifactId> 
       <version>2.3.1</version> 
       <configuration> 
        <archive> 
         <manifest> 
          <mainClass>my.package.name.Main</mainClass> 
         </manifest> 
        </archive> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <repositories> 
     <repository> 
      <url>http://download.java.net/maven/2/</url> 
      <id>java.net</id> 
      <layout>default</layout> 
      <name>java.net</name> 
     </repository> 
    </repositories> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>3.8.1</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.jdesktop</groupId> 
      <artifactId>beansbinding</artifactId> 
      <version>1.2.1</version> 
      <type>jar</type> 
      <scope>compile</scope> 
     </dependency> 
    </dependencies> 
</project> 

을 포함 : 0

조립의 pom.xml은 같다 스윙 클라이언트와 EJB 모듈 사이. 난 그냥 간단한 스윙 양식을 얻고 ACC 양식 GlassFish (v 3.1.1)를 다 써 버리길 원합니다.

하지만 작동하지 않습니다. Swing-Client는 ear 파일 안의 lib 폴더에 들어 있으며 시작할 수 없습니다.

이 작업을 수행하는 예제 또는 예제를 알고 있습니까?

답변

2

당신의 귀 치어 같은 귀 플러그인 구성해야합니다 (어쩌면 당신은 당신이 당신의 질문에 넣어 때를 왼쪽?) : 외부 응용 프로그램 클라이언트 JAR을 패키지합니다

<plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-ear-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <version>6</version> 
       <generateApplicationXml>true</generateApplicationXml> 
       <defaultLibBundleDir>lib</defaultLibBundleDir> 
       <modules> 
        <webModule> 
         <groupId>com.foo</groupId> 
         <artifactId>shop-web</artifactId> 
         <contextRoot>webstuff</contextRoot> 
        </webModule> 
        <ejbModule> 
         <groupId>com.foo</groupId> 
         <artifactId>shop-ejb</artifactId> 
         <classifier>single</classifier> 
         <bundleFileName>shop-ejb.jar</bundleFileName> 
        </ejbModule> 
        <jarModule> 
         <groupId>com.foo</groupId> 
         <artifactId>shop-client</artifactId> 
         <bundleDir>/</bundleDir> 
         <bundleFileName>shop-client.jar</bundleFileName> 
         <includeInApplicationXml>true</includeInApplicationXml> <!-- i don't remember if this was absolutely necessary --> 
        </jarModule> 
       </modules> 
      </configuration> 
     </plugin> 

lib 폴더를 만들고 전쟁 모듈의 컨텍스트 루트를 정의하는 데 도움이 될 것입니다 (찾을 수있는 또 다른 방법은 없습니다). bundleFileName은 클라이언트를 시작하기위한 URL을 얻는 것이 더 중요합니다.

내가 모두 함께이 문제를두고 하나의 튜토리얼의 모르겠지만, 일부 리소스는

:

관련 문제