[Java] GlassFish 4 beta and Maven Embedded Plugin

原文はこちら。
https://blogs.oracle.com/brunoborges/entry/glassfish_4_beta_and_maven

お披露目前にJava EE 7を試す簡単な方法を探してらっしゃるのではないでしょうか。現在JSRがFinalになっているもの(JMS、Batch、JSONなど)は特にそうでしょう。ArunがすでにJava EE 7プロジェクトをMavenとともに使う件についてご紹介していますが、Mojo projectがCodehausで提供しているarchetypeからは一つ重要なものが抜けています。そう、Maven Plugin for GlassFish Embeddedです。
JMS 2, Bean Validation 1.1, JBatch, JSON-P Go Final!
https://blogs.oracle.com/theaquarium/entry/jms_2_bean_validation_1
Java EE 7 Maven Archetype - Available in NetBeans (TOTD #201)
https://blogs.oracle.com/arungupta/entry/java_ee_7_maven_archetype
Maven Embedded GlassFish Plugin
http://embedded-glassfish.java.net/nonav/plugindocs/3.1/plugin-info.html
GlassFish Embedded
http://embedded-glassfish.java.net/
このプラグインはすばらしい理由は、開発者はGlassFishをローカルにダウンロード、インストール、構成しなくてよい、という点です。やるべきことは、JDKとMavenをインストールするだけです。それから、ちゃんと動くものならどんなIDEでも選択できます(今はNetBeansで動かしていますが、Sublime Text 2も大好きです)。簡単な3ステップのコマンドでOKです。
  1. $ git clone http://myrepo/myproject
  2. $ cd myproject
  3. $ mvn embedded-glassfish:run
    ... ローカルリポジトリにダウンロードが完了するまで待ちましょう...
終わりました!MavenとJDK(あ、この場合はGitもですね)以外のインストールに依存しない、シンプルなプロジェクトです。それではEmbeddedプラグインを使う場合のpom.xmlの設定方法をご紹介しましょう。
  1. Arunがブログで書いていたように、Codehaus archetypeベースのプロジェクトを作成します。ブラウザの履歴のため、ここにコマンドラインをコピーしています(訳注:表現上改行を入れていますが、実際には1行でお願いします)。
    mvn -DarchetypeGroupId=org.codehaus.mojo.archetypes
        -DarchetypeArtifactId=webapp-javaee7
        -DarchetypeVersion=0.3-SNAPSHOT
        -DarchetypeRepository=https://nexus.codehaus.org/content/repositories/snapshots/
        -DgroupId=org.glassfish
        -DartifactId=javaee7-sample
        -Dversion=1.0-SNAPSHOT
        -Dpackage=org.glassfish.javaee7-sample
        -Darchetype.interactive=false
        --batch-mode --update-snapshots archetype:generate
  2. pom.xmlを開き、<plugins>セクションの最後に移動します。
  3. 以下のpluginを<build><plugins>セクションに追記します。
  4. <plugin>
           <groupid>org.glassfish.embedded</groupid>
             <artifactid>maven-embedded-glassfish-plugin</artifactid>
             <version>3.1.2.2</version>
             <configuration>
                <app>target/${project.artifactId}-${project.version}</app>
                <port>8282</port>
                <contextroot>${project.artifactId}</contextroot>
             </configuration>
             <dependencies>
               <dependency>
               <groupid>org.glassfish.main</groupid>
               <artifactid>simple-glassfish-api</artifactid>
               <version>4.0-b79</version>
             </dependency>
             <dependency>
               <groupid>org.glassfish.main.extras</groupid>
               <artifactid>glassfish-embedded-all</artifactid>
               <version>4.0-b83</version>
             </dependency>
           </dependencies>
         </plugin>
  5. (2013年4月13日に更新)以下のpluginRepositoryの設定をPOMに記述するのを忘れないで下さい!
  6. <pluginrepositories>
            <pluginrepository>
                <id>maven.java.net</id>
                <name>Java.net Repository for Maven</name>
                <url>https://maven.java.net/content/groups/promoted/</url>
            </pluginrepository>
            <pluginrepository>
                <id>maven2-repository.dev.java.net</id>
               <name>Java.net Repository for Maven</name>
                <url>http://download.java.net/maven/glassfish/</url>
            </pluginrepository>
        </pluginrepositories>
  7. 以下のMavenのコマンドを実行し、ブラウザでhttp://localhost:8282/javaee7-sampleを開きます。
  8. $ mvn package embedded-glassfish:run
プラグインの依存性を修正しなければならない理由は、GlassFish 4 promoted buildに対応したEmbedded Pluginがまだリリースされていないからです。すでに一部のあーティファクトはあるのですがね(b79用のsimple-glassfish-apiとか。バージョンが違うのは、b83がまだリリースされていないからです)。公式リリースのタイミングでプラグインがアップデートされることでしょう。

ところで、このEmbedded Pluginの設定で、Java Server Facesページを編集することができます。ブラウザの更新ボタンを押してみてください。Mavenのターゲットディレクトリに展開されたWARを指すよう構成されています。デザイナー向けの素晴らしいセットアップの仕組みですね。

お披露目前にJava EE 7のコーディングを楽しみましょう!

0 件のコメント:

コメントを投稿