第3章 POM ファイルを使用した Eclipse Vert.x プロジェクトの作成
基本的な Eclipse Vert.x アプリケーションの開発時に、以下のアーティファクトを作成する必要があります。これらのアーティファクトは、最初の getting-started
Eclipse Vert.x プロジェクトで作成します。
- Eclipse Vert.x メソッドを含む Java クラス。
-
アプリケーションをビルドするために Maven が必要とする情報が含まれる
pom.xml
ファイル。
次の手順では、応答として Greetings! を返す簡単な Greeting
アプリケーションを作成します。
Eclipse Vert.x は、アプリケーションを OpenShift にビルドおよびデプロイするために OpenJDK 8 および OpenJDK 11 をベースとしたビルダーイメージをサポートします。Oracle JDK および OpenJDK 9 のビルダーイメージはサポートされていません。
要件
- OpenJDK 8 または OpenJDK 11 がインストールされている。
- Maven がインストールされている。
手順
新しいディレクトリー
getting-started
を作成し、そこに移動します。$ mkdir getting-started $ cd getting-started
これは、アプリケーションのルートディレクトリーです。
ルートディレクトリーにディレクトリー構造
src/main/java/com/example/
を作成し、そこに移動します。$ mkdir -p src/main/java/com/example/ $ cd src/main/java/com/example/
アプリケーションコードを含む Java クラスファイル
MyApp.java
を作成します。package com.example; import io.vertx.core.AbstractVerticle; import io.vertx.core.Promise; public class MyApp extends AbstractVerticle { @Override public void start(Promise<Void> promise) { vertx .createHttpServer() .requestHandler(r -> r.response().end("Greetings!")) .listen(8080, result -> { if (result.succeeded()) { promise.complete(); } else { promise.fail(result.cause()); } }); } }
アプリケーションは、ポート 8080 で HTTP サーバーを起動します。リクエストを送信すると、Greetings! メッセージが返されます。
アプリケーションルートディレクトリー
getting-started
に、以下の内容でpom.xml
ファイルを作成します。-
<dependencyManagement>
セクションに、io.vertx:vertx-dependencies
アーティファクトを追加します。 -
Type を
pom
として指定し、
scope
をimport
として指定します。 <project>
セクションの<properties>
で、EclipseVert.x と EclipseVert.xMaven Plugin のバージョンを指定します。注記プロパティーを使用して、リリースごとに変更する値を設定できます。たとえば、product または plugins のバージョンなどです。
-
<project>
セクションの<plugin>
で、vertx-maven-plugin
を指定します。Eclipse Vert.x Maven Plugin は、アプリケーションのパッケージ化に使用されます。 repositories
およびpluginRepositories
を追加して、アプリケーションのビルド用のアーティファクトおよびプラグインが含まれるリポジトリーを指定します。pom.xml
には、以下のアーティファクトが含まれます。
<?xml version="1.0" encoding="UTF-8"?> <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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>my-app</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>jar</packaging> <name>My Application</name> <description>Example application using Vert.x</description> <properties> <vertx.version>4.1.8.redhat-00003</vertx.version> <vertx-maven-plugin.version>1.0.24</vertx-maven-plugin.version> <vertx.verticle>com.example.MyApp</vertx.verticle> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties> <!-- Import dependencies from the Vert.x BOM. --> <dependencyManagement> <dependencies> <dependency> <groupId>io.vertx</groupId> <artifactId>vertx-dependencies</artifactId> <version>${vertx.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <!-- Specify the Vert.x artifacts that your application depends on. --> <dependencies> <dependency> <groupId>io.vertx</groupId> <artifactId>vertx-core</artifactId> </dependency> <dependency> <groupId>io.vertx</groupId> <artifactId>vertx-web</artifactId> </dependency> <!-- Test dependencies --> <dependency> <groupId>io.vertx</groupId> <artifactId>vertx-junit5</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.4.0</version> <scope>test</scope> </dependency> </dependencies> <!-- Specify the repositories containing Vert.x artifacts. --> <repositories> <repository> <id>redhat-ga</id> <name>Red Hat GA Repository</name> <url>https://maven.repository.redhat.com/ga/</url> </repository> </repositories> <!-- Specify the version of the Maven Surefire plugin. --> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M5</version> </plugin> <plugin> <!-- Configure your application to be packaged using the Vert.x Maven Plugin. --> <groupId>io.reactiverse</groupId> <artifactId>vertx-maven-plugin</artifactId> <version>${vertx-maven-plugin.version}</version> <executions> <execution> <id>vmp</id> <goals> <goal>initialize</goal> <goal>package</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
-
アプリケーションのルートディレクトリーから Maven を使用してアプリケーションをビルドします。
mvn vertx:run
アプリケーションが実行していることを確認します。
curl
またはブラウザーを使用して、アプリケーションがhttp://localhost:8080
で実行されているかどうかを確認し、"Greetings!" がレスポンスとして返されるかを確認します。$ curl http://localhost:8080 Greetings!