2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Maven Archetype Pluginを直接使って、Nablarchのブランクプロジェクトを作成する

Last updated at Posted at 2020-11-23

What's?

Nablarchのブランクプロジェクトを、Maven Archetype Pluginを直接使って作成する方法をメモしよう、ということで。

Nablarchのブランクプロジェクト

Nablarchのブランクプロジェクトについては、こちらにドキュメントがあります。

ブランクプロジェクト

初期セットアップ手順

初期セットアップ手順(コンテナ)

ブランクプロジェクトの作成方法としては、Windowsバッチファイルをダウンロードして実行すること、と書かれています。

ですが、Linux環境だと困りますし、バッチファイルを開いて手順を確認するのものなぁと思ってメモしようかなと。

ちなみに、Nablarch 5u18でのコンテナ用RESTfulウェブサービスのブランクプロジェクト作成のためのWindowsバッチファイルは、こんな感じです。

$ curl https://nablarch.github.io/docs/5u18/doc/_downloads/generateContainerWebServiceProject.bat
if "%5" EQU "" (
  set package=%2
) else (
  set package=%5
)

mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate -DinteractiveMode=false -DarchetypeGroupId=com.nablarch.archetype -DarchetypeArtifactId=nablarch-container-jaxrs-archetype -DarchetypeVersion=%1 -DgroupId=%2 -DartifactId=%3 -Dversion=%4 -Dpackage=%package%

まあ、この中を埋めていくだけの話ではあるのですが、もう少し情報を整理しようかなと。

環境

今回の環境は、こちら。

$ java --version
openjdk 11.0.9.1 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)


$ mvn --version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: $HOME/.sdkman/candidates/maven/current
Java version: 11.0.9.1, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: ja_JP, platform encoding: UTF-8
OS name: "linux", version: "5.4.0-54-generic", arch: "amd64", family: "unix"

Nablarchは、現時点での最新版5u18を使用します。

$ curl -s https://api.github.com/repos/nablarch/nablarch-profiles/releases/latest | jq -r '.tag_name'
5u18

Nablarchのアーキタイプの一覧を表示する

まずは、アーキタイプの一覧を確認したいところです。

ブランクプロジェクトの作成自体はMaven Archetype Plugin 2.4で行いますが、一覧の取得は最新版で行うことになります。

以下のコマンドで、結果を絞り込みましょう。

$ mvn archetype:generate \
  -DarchetypeGroupId=com.nablarch.archetype \
  -Dfilter=nablarch | grep nablarch-

こんな感じで結果が取得できます。コマンド入力待ちになっているので、Ctrl-cで終了してください。

1: remote -> com.nablarch.archetype:nablarch-batch-archetype (Nablarch Framework.)
2: remote -> com.nablarch.archetype:nablarch-batch-ee-archetype (Nablarch Framework.)
3: remote -> com.nablarch.archetype:nablarch-container-jaxrs-archetype (Nablarch Framework.)
4: remote -> com.nablarch.archetype:nablarch-container-web-archetype (Nablarch Framework.)
5: remote -> com.nablarch.archetype:nablarch-jaxrs-archetype (Nablarch Framework.)
6: remote -> com.nablarch.archetype:nablarch-web-archetype (Nablarch Framework.)

アーキタイプ名は、nablarch-web-archetypeなどの部分を使用します。

Maven Archetype Pluginのドキュメントの、以下の部分を使っている感じですね。

Filtering to reduce archetype list

Project creation / Usage

アーキタイプと対応するアプリケーションの種類は、名前を見たらまあわかるでしょう。

ブランクプロジェクトを作成する

では、アーキタイプを選んでプロジェクトを作成しましょう。

プロジェクト作成の際には、org.apache.maven.plugins:maven-archetype-plugin:2.4:generateを指定します。

$ mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate \
  -DinteractiveMode=false \
  -DarchetypeGroupId=com.nablarch.archetype \
  -DarchetypeArtifactId=[使用するNablarchのブランクプロジェクト用のアーキタイプ] \
  -DarchetypeVersion=[使用するNablarchのバージョン] \
  -DgroupId=[作成するプロジェクトのグループID] \
  -DartifactId=[作成するプロジェクトのアーティファクトID] \
  -Dversion=[作成するプロジェクトのバージョン] \
  -Dpackage=[作成するプロジェクトのパッケージ名]

具体的な例でいくと、こんな感じですね。

$ mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate \
  -DinteractiveMode=false \
  -DarchetypeGroupId=com.nablarch.archetype \
  -DarchetypeArtifactId=nablarch-container-jaxrs-archetype \
  -DarchetypeVersion=5u18 \
  -DgroupId=com.example \
  -DartifactId=hello-restful-web \
  -Dversion=0.0.1 \
  -Dpackage=com.example.restful

ここでは、以下の条件で作成。

  • アーキタイプ … nablarch-container-jaxrs-archetype
  • Nablarchのバージョン … 5u18
  • 作成するプロジェクトのグループID … com.example
  • 作成するプロジェクトのアーティファクトID … hello-restful-web
  • 作成するプロジェクトのバージョン … 0.0.1
  • 作成するプロジェクトのパッケージ … com.example.restful

指定情報は、こんな感じで表示されます。

[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: nablarch-container-jaxrs-archetype:5u18
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.example
[INFO] Parameter: artifactId, Value: hello-restful-web
[INFO] Parameter: version, Value: 0.0.1
[INFO] Parameter: package, Value: com.example.restful
[INFO] Parameter: packageInPathFormat, Value: com/example/restful
[INFO] Parameter: package, Value: com.example.restful
[INFO] Parameter: groupId, Value: com.example
[INFO] Parameter: artifactId, Value: hello-restful-web
[INFO] Parameter: version, Value: 0.0.1
[INFO] project created from Archetype in dir: /path/to/hello-restful-web
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.466 s
[INFO] Finished at: 2020-11-23T16:11:16+09:00
[INFO] ------------------------------------------------------------------------

あとは、プロジェクト内に移動して作業を進めましょう。

$ cd hello-restful-web

nablarch-container-jaxrs-archetypeを選んだ場合に、作成されたファイルはこちら。

$ find -type f
./README.md
./pom.xml
./.gitignore
./h2/bin/h2-1.3.176.jar
./h2/bin/h2w.bat
./h2/bin/h2.sh
./h2/bin/h2.bat
./h2/db/SAMPLE.h2.db
./h2/db/SAMPLE.h2.db.org
./db/ddl/db2/create.sql
./db/ddl/db2/drop.sql
./db/ddl/sqlserver/create.sql
./db/ddl/sqlserver/drop.sql
./db/ddl/oracle/create.sql
./db/ddl/oracle/drop.sql
./db/ddl/postgresql/create.sql
./db/ddl/postgresql/drop.sql
./db/ddl/h2/create.sql
./db/ddl/h2/drop.sql
./db/data/db2/data.sql
./db/data/sqlserver/data.sql
./db/data/oracle/data.sql
./db/data/postgresql/data.sql
./db/data/h2/data.sql
./src/main/webapp/WEB-INF/web.xml
./src/main/resources/entity/data-model_sqlserver.edm
./src/main/resources/entity/data-model.edm
./src/main/resources/entity/data-model_postgresql.edm
./src/main/resources/entity/data-model_db2.edm
./src/main/resources/entity/data-model_oracle.edm
./src/main/resources/rest-boot.xml
./src/main/resources/env.config
./src/main/resources/META-INF/services/nablarch.core.repository.di.config.externalize.ExternalizedComponentDefinitionLoader
./src/main/resources/rest-component-configuration.xml
./src/main/resources/messages.properties
./src/main/resources/data-source.xml
./src/main/resources/log.properties
./src/main/resources/app-log.properties
./src/main/resources/common.config
./src/main/jib/usr/local/tomcat/conf/server.xml
./src/main/jib/usr/local/tomcat/conf/logging.properties
./src/main/java/com/example/restful/entity/package-info.java
./src/main/java/com/example/restful/entity/SampleUser.java
./src/main/java/com/example/restful/package-info.java
./src/main/java/com/example/restful/domain/package-info.java
./src/main/java/com/example/restful/domain/SampleDomainBean.java
./src/main/java/com/example/restful/domain/SampleDomainManager.java
./src/main/java/com/example/restful/SampleAction.java
./src/main/java/com/example/restful/dto/SampleUserListDto.java
./src/test/resources/log.properties
./src/test/resources/unit-test.xml
./src/test/resources/data/SAMPLE_USER.csv
./src/test/java/com/example/restful/SampleApiTest.java
./src/test/java/com/example/restful/SampleActionTest.java

オマケ

最新のNablarchを指定してプロジェクトを作成したい場合は、アーキタイプのリポジトリのリリースバージョンを使うと良いでしょう。

$ LATEST_NABLARCH_VERSION=`curl -s https://api.github.com/repos/nablarch/nablarch-single-module-archetype/releases/latest | jq -r '.tag_name'`
$ mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate \
  -DinteractiveMode=false \
  -DarchetypeGroupId=com.nablarch.archetype \
  -DarchetypeArtifactId=${LATEST_NABLARCH_VERSION} \
  -DarchetypeVersion=[使用するNablarchのバージョン] \
  -DgroupId=[作成するプロジェクトのグループID] \
  -DartifactId=[作成するプロジェクトのアーティファクトID] \
  -Dversion=[作成するプロジェクトのバージョン] \
  -Dpackage=[作成するプロジェクトのパッケージ名]

あとは、parentprofilesからも同じリリースバージョンが取得できますね。

nablarch-parent

nablarch-profiles

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?