Spring Boot のプロジェクトで Maven のビルドを実行したら、下記エラーが発生してビルドできませんでした。
INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 0.582 s [INFO] Finished at: 2019-07-28T12:24:38+09:00 [INFO] ------------------------------------------------------------------------ [WARNING] The requested profile "pom.xml" could not be activated because it does not exist. [ERROR] No goals have been specified for this build. You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoGoalSpecifiedException
どうも、Mavenのライフサイクルかゴールかを記述しなければいけないみたい。
このゴールというのが曲者で、なにを指定していいのかなかなか分かりませんでした。
今回は、jar ファイルを作成したいのでpackage
を指定するのが正解のようです。
Mavenの設定の「ゴール」に「package」を設定してビルドします。
警告は出ていますが、うまくいったようですね。
[INFO] Scanning for projects... [INFO] [INFO] --------------------------< com.example:demo >-------------------------- [INFO] Building demo 0.0.1-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- ︙ [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 45.865 s [INFO] Finished at: 2019-07-28T12:51:36+09:00 [INFO] ------------------------------------------------------------------------ [WARNING] The requested profile "pom.xml" could not be activated because it does not exist.
プロジェクト配下のtarget
ディレクトリに、demo-0.0.1-SNAPSHOT.jar
が作成されていますね。
この jar ファイルを実行可能にするには、以下のようにpom.xml
を設定する必要があります。<executable>true</executable>
がキモですね。
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <executable>true</executable> </configuration> </plugin>
詳しくは、下記記事を参照してください。
また、jar ファイル名をカスタマイズしたい場合もpom.xml
を設定する必要があります。
<artifactId>
タグと<version>
タグを変更します。下記の設定だと、demo-1.0.0.jar
が出来上がります。
とはいえ、バージョン番号はともかくプロジェクト名は変更しない方が安全な気もします。
<groupId>com.example</groupId> <artifactId>demo</artifactId> <version>1.0.0</version>