Reputation: 31
im trying to deploy my back end application to heroku bun when I run this command
git push --force heroku-be-app splitting-staging-be:master
im getting this error
[INFO] Downloaded from central: https://repo.maven.apache.org/maven2/com/thoughtworks/qdox/qdox/2.0-M9/qdox-2.0-M9.jar (317 kB at 7.6 MB/s)
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 24 source files to /tmp/build_4e875976/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.593 s
[INFO] Finished at: 2020-12-21T15:28:14Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project backend: Fatal error compiling: invalid target release: 11 -> [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/MojoExecutionException
! ERROR: Failed to build app with Maven
We're sorry this build is failing! If you can't find the issue in application code,
please submit a ticket so we can help: https://help.heroku.com/
! Push rejected, failed to compile Java app.
! Push failed
This is my pom file:
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>vs</groupId>
<artifactId>backend</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>backend</name>
<description>Main server voor van streek project</description>
<properties>
<java.version>15</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>5.4.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>5.3.1</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>jakarta.mail</artifactId>
<version>1.6.5</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>15</source> <!-- maven.compiler.source -->
<target>15</target> <!-- maven.compiler.target -->
</configuration>
</plugin>
</plugins>
</build>
</project>
Upvotes: 3
Views: 15543
Reputation: 315
This is what I have experienced today.
I have been using jdk 1.8, and then have to install jdk 1.11.
But, after running mvnw
through my shell script file dep.sh
, it failed to build jar.
#!/bin/bash
MVN=$(pwd)/mvnw
echo "[1/2] Building app.jar ..."
$MVN clean package -Dmaven.test.skip=true
dep.sh
calls mvnw script file with goal clan package
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile
(default-compile) on project dictation:
Fatal error compiling: invalid target release: 11 -> [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/MojoExecutionException
My pom.xml
is configured with jdk 1.11. But it does not solve the build error.
<project ...>
<properties>
<java.version>11</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>11</source><!-- 1.11 not working -->
<target>11</target><!-- 1.11 not working -->
</configuration>
</plugin>
</plugins>
</build>
</project>
When I installed jdk 1.8, JAVA_HOME
was set to /my/jdk/1.8/dir
, which is used for bundling jar.
I set JAVA_HOME
to /my/jdk/1.111/dir
in dep.sh
, it works without error.
#!/bin/bash
JAVA_HOME="/C/Program Files/Java/jdk-11.0.9"
MVN=$(pwd)/mvnw
echo "[1/2] Building app.jar ..."
$MVN clean package -Dmaven.test.skip=true
Upvotes: 1
Reputation: 319
I solved this problem by adding a new file system.properties and the content added to the file is java.runtime.version=11 (For me I am using JDK 11).
java.runtime.version=11
Upvotes: 4
Reputation: 19
You must use the specific version of Java supported by Heroku. The following versions supported are:
Set a java.runtime.version property of the system.properties file, create a system.properties file if one does not already exist.
java.runtime.version = SUPPORTED_VERSION
Read more in heroku-java-support
Upvotes: 1
Reputation: 2673
I would try focusing on why maven complains about invalid release 11 (Fatal error compiling: invalid target release: 11
).
As seen in your pom.xml
config you clearly intend to use version 15, so I would suggest to investigate why there is a problem with version 11.
Check $JAVA_HOME
environment variable, system.properties
file, etc.
Also try debug route suggested in official docs or a Q&A on a similar topic.
Upvotes: 3