kiamoto_keiko
@kiamoto_keiko (keiko k)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

push heroku masterでのMojoExecutionException

解決したいこと

現在Javaを学んでおりEclipseでServletプログラムを作成し、Herokuというサービスでディプロイを考えています。
サービスは作成出来たのですが、Herokuへのpushが上手く行かずに困っております。

環境

java -version "15.0.1"
mvn -version Apache Maven 3.6.3
H2datebase -version 1.4.200

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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>任意</groupId>
  <artifactId>任意</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
      <!-- 文字コードの設定 -->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
    </properties>
    <!--javaxを読込む—>
  <dependencies>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0.1</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>1.4.200 </version>
</dependency>
  </dependencies>


  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
          <release>11</release>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.2.3</version>
        <configuration>
          <warSourceDirectory>WebContent</warSourceDirectory>
        </configuration>
      </plugin>
      <!-- Herokuから取ってきたwebappのプラグイン -->
     <!--  https://devcenter.heroku.com/ja/articles/java-webapp-runner -->
       <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals><goal>copy</goal></goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>com.heroku</groupId>
                                <artifactId>webapp-runner</artifactId>
                                <version>9.0.30.0</version>
                                <destFileName>webapp-runner.jar</destFileName>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
  </build>
</project>

発生している問題・エラー

Herokuで下記の操作を行った後にエラーが発生致しました。

heroku create
git push heroku master

原因が提示されていると考えられるエラー全文からの一部抜粋

[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

エラー全文

remote:        [INFO] Changes detected - recompiling the module!
remote:        [INFO] Compiling 9 source files to /tmp/build_7bd808c5/target/classes
remote:        [INFO] ------------------------------------------------------------------------
remote:        [INFO] BUILD FAILURE
remote:        [INFO] ------------------------------------------------------------------------
remote:        [INFO] Total time:  8.485 s
remote:        [INFO] Finished at: 2021-02-27T09:23:08Z
remote:        [INFO] ------------------------------------------------------------------------
remote:        [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project whisper: Fatal error compiling: invalid flag: --release -> [Help 1]
remote:        [ERROR] 
remote:        [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
remote:        [ERROR] Re-run Maven using the -X switch to enable full debug logging.
remote:        [ERROR] 
remote:        [ERROR] For more information about the errors and possible solutions, please read the following articles:
remote:        [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
remote: 
remote:  !     ERROR: Failed to build app with Maven
remote:        We're sorry this build is failing! If you can't find the issue in application code,
remote:        please submit a ticket so we can help: https://help.heroku.com/
remote: 
remote:  !     Push rejected, failed to compile Java app.
remote: 
remote:  !     Push failed
remote: Verifying deploy...
remote: 
remote: !   Push rejected to へロクにcreateしたアプリ名.
remote: 

自分で試したこと

エラー内容にはMojoExecutionExceptionとありpluginの中身が違うとありました。
pom.xmlの11の部分の書き方が私的には間違えていると考え、11→15 へ書き換えGitHubへコミットしてから再度pushしてみましたが同じエラーが抽出されてしまい上手くいきませんでした。
(添付pom.xmlは11に戻してあります。)

何か考えられる原因は他にあるということでしょうか?
御指導御鞭撻の程よろしくお願い致します。

※2/28実行環境の写真を追加しました。

コントロールパネルからの環境確認
スクリーンショット 2021-02-28 12.26.47.png
スクリーンショット 2021-02-28 12.29.56.png

ターミナルからの環境確認
スクリーンショット 2021-02-28 12.30.35.png

0

2Answer

remote:        [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project whisper: Fatal error compiling: invalid flag: --release -> [Help 1]

releaseは無効なフラグであると言われています。

releaseはJava 9からサポートされていると書いてあります。
https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#release

HerokuではデフォルトでJava 8が使用され、推奨されるとも書いてあります。
https://devcenter.heroku.com/articles/java-support#supported-java-versions

以上のことから、
pom.xmlでJavaのバージョンを指定しましたが、それが上手く行っておらず、
デフォルトのJava 8でビルドが実行され、releaseが無効なフラグと判定され、
エラーになっているように思えます。

<configuration>
    <release>11</release>
</configuration>

とりあえず、この部分を削除してみたら上手く行きそうな気がするのですが、どうでしょうか?

2Like

Comments

  1. @kiamoto_keiko

    Questioner

    @anonymous様
    ありがとうございます。
    実行が出来ました。
    今回の問題はversionの問題で上手くいっておらず、versionを指定したことによって更にエラーが起きてしまっていたという認識であってますでしょうか?

    この一ヶ月Herokuによるディプロイが出来ず、
    Heroku、Git&GitHub連携の見直し、Mavenについて何度も何度も同じページを調べたり、更新しては戻しの繰り返しでPush時のBUILD FAILUREを30以上出力してしまっていたので本当に参っていました。
    @anonymous様からのアドバイスでディプロイが成功し感極まり涙が出るほど嬉しかったです。Webアプリをサーバーの問題などに今度はぶつかりそうなのでめげずにまた進んで行きたいと思います。

    本件について本当にありがとうございました。
    今後とも宜しくお願い致します。
  2. 動いて良かったですね!

    > 今回の問題はversionの問題で上手くいっておらず、versionを指定したことによって更にエラーが起きてしまっていたという認識であってますでしょうか?

    はい、合っていると思います。
  3. @kiamoto_keiko

    Questioner

    ご助言を頂きありがとうございました。m(_ _)m

pom.xmlで
<java.version>1.8</java.version><java.version>15</java.version>
<release>11</release><release>15</release>
変えてみたらどうなりますでしょうか?

また、もし、上記が駄目だった場合、
<java.version>1.8</java.version>を削除して
<release>11</release><release>15</release>
変えてみたらどうなりますでしょうか?

1Like

Comments

  1. @kiamoto_keiko

    Questioner

    @anonymous様
    コメントをして頂きましてありがとうございます。
    上記方法を2つとも実行しました。
    結果的には質問時のエラーと同様の内容が抽出されました。
    私のversionがおかしいのかと再度調べていた所、macOSターミナル上で--versionコマンドで確認をしたものとコントロールパネルから確認したもので相違があるような感じがあります。
    今回実行出来ない原因の一つとして考えられますでしょうか?
    投稿に写真を付け足させて頂きます。
    お忙しい中と存じますが、コメントを頂ければ幸いです。

Your answer might help someone💌