Создайте клиент приложения с помощью Maven в Java EE

Я пытаюсь создать корпоративное приложение на основе maven с клиентом приложения, которое запускается в контейнере клиента приложения из GlassFish. Он должен соответствовать шаблону проекта от Netbeans «Корпоративное приложение» + «Клиент корпоративного приложения», но с maven, а не с ant.

До сих пор у меня есть следующие проекты

  • Сборка проекта Maven
  • EAR-модуль
  • EJB-модуль
  • WEB-модуль (хорошо работает внутри уха)
  • Свинг-модуль клиента

Сборка pom.xml выглядит так:

    <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>

И клиент Swing 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>

В настоящее время у меня нет зависимостей между клиентом Swing и модулем EJB. Я просто хочу получить простую форму Swing и запустить ее из формы ACC GlassFish (v 3.1.1).

Но это не работает. Swing-Client запакован в папку lib внутри ear-файла и запустить его не могу.

Знаете ли вы учебник или пример, который выполняет эту задачу?


person h2mch    schedule 12.08.2011    source источник


Ответы (2)


Ваш ушной помпон должен настроить ушной плагин следующим образом (может быть, вы просто пропустили его, когда вставили его в свой вопрос?):

<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>

That will package your application client jar outside the lib folder, and will help you define the context roots for your war modules (there isn't another way that I could find). The bundleFileName was important to get the URL to launch the client to make more sense.

Я не знаю ни одного учебника, который собирал бы все это вместе, но вот некоторые ресурсы:

person Jim    schedule 15.08.2011

Теперь есть официальная поддержка maven для клиентов приложений.

http://maven.apache.org/plugins/maven-acr-plugin/ http://maven.apache.org/plugins/maven-ear-plugin/examples/using-app-client.html

http://web.anahata-it.com/2011/09/09/java-jee-desktop-maven-enterprise-application-client/

В NetBeans 7.1 также будет добавлена ​​поддержка клиентов приложений maven.

person Pablo    schedule 10.09.2011
comment
вторая ссылка битая. - person zellus; 03.09.2013