Maven3で、GlassFish3を使ってみる
Oracle OpenWorld 2012で熱く語られていた「GlassFish」を使ってみる。
ただ使うのもあれなので、前から気になってたMaven3と組み合わせてスムーズな開発をしてみよう!
コンセプトは、簡単でクリーンな開発。
準備(インストール)
- ここからダウンロード
- インストーラ版でもいいけど、zip版を使用
- glassfish-3.1.2-ml.zip
- インストーラ版でもいいけど、zip版を使用
- 解凍し、適当な場所に配置
- glassfish3\binにPATHを通す
- glassfish3\bin\asadminをリネーム(asadmin_bkなど)*1
- asadmin.batはそのまま
- ここからダウンロード
- 解凍し、適当な場所に配置
- apache-maven-3.0.4\binにPATHを通す
- プロキシ環境の人は、apache-maven-3.0.4\conf\settings.xmlの
をコメントアウト解除し、編集する。
<proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <username>proxyuser</username> <password>proxypass</password> <host>proxy.host.net</host> <port>80</port> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy>
JDK
GlassFishのドメイン作成
- コマンドプロンプト立ちあげて、以下のコマンドを実行
> asadmin.bat create-domain my_domain
-
- ユーザ名とパスワードを聞かれるので、入力する
- ちなみに、これをやらなくても最初から「domain1」というドメインが作られています。
- ユーザ名とパスワードを聞かれるので、入力する
- 確認
> ./asadmin.bat list-domains
-
- my_domainが出れば成功。
Mavenプロジェクトの作成
- コマンドプロンプト立ちあげて、プロジェクトを作成したいディレクトリに移動する。
- 例では、「C:\project」に作成する。
> cd C:\project
- mvnコマンドを実行し、プロジェクトを作成
- webアプリを作成するために、archetypeArtifactIdに「maven-archetype-webapp」を指定する
- groupIdはプロジェクトの階層、artifactIdはプロジェクトの識別子になる
> mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=com.example -DartifactId=MyMavenApp
-
- versionとパッケージを聞かれるが、デフォルト設定を選ぶためEnterを押す。
- MyMavenAppディレクトリが作成される。
> dir MyMavenApp pom.xml src
GlassFishと連携
- 作成したMyMavenAppをGlassFishにデプロイするための設定を行う
- 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.example</groupId> <artifactId>MyMavenApp</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>MyMavenApp Maven Webapp</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> <build> <finalName>MyMavenApp</finalName> </build> </project>
<!-- 編集後 --> <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.example</groupId> <artifactId>MyMavenApp</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>MyMavenApp Maven Webapp</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> <build> <finalName>MyMavenApp</finalName> <plugins> <plugin> <groupId>org.glassfish.maven.plugin</groupId> <artifactId>maven-glassfish-plugin</artifactId> <version>2.1</version> <configuration> <!-- ドメイン作成時に指定したユーザ --> <user>admin</user> <!-- GlassFishのインストール先 --> <glassfishDirectory>C:/app/glassfish3</glassfishDirectory> <!-- ドメイン作成時に指定したパスワード --> <adminPassword>admin</adminPassword> <debug>true</debug> <echo>true</echo> <components> <component> <name>${project.artifactId}</name> <artifact>${project.build.directory}/${project.build.finalName}.war</artifact> </component> </components> <domain> <name>my_domain</name> <adminPort>4848</adminPort> </domain> </configuration> </plugin> </plugins> </build> </project>
- my_domainを起動する
> asadmin.bat start-domains my_domain
- my_domainにMyMavenAppをデプロイする
> cd C:\project\MyMavenApp > mvn war:war glassfish:deploy
- MyMavenAppにアクセス
- プラウザを起動し、URLを入力
http://localhost:8080/MyMavenApp/
これで、開発の準備が整いました。