invalid target release: 17 w pipeline GitLabowym

0

Mam prostą apke Springową, w której ustawiam

	<properties>
		<java.version>17</java.version>
	</properties>

oraz

<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>
	<configuration>
		<source>17</source>
		<target>17</target>
	</configuration>
</plugin>		

Następnie, w Dockerfile mam

FROM maven:3.5.2 AS MAVEN_BUILD
WORKDIR /usr/build
COPY pom.xml /usr/build/
COPY src /usr/build/src
RUN mvn clean install

FROM openjdk:17
WORKDIR /usr/myapp
COPY --from=MAVEN_BUILD /usr/build/target/myapp-0.0.1.jar /usr/myapp/myapp.jar
EXPOSE 8080
CMD java -jar myapp.jar

I to działa gdy odpalam to lokalnie, niestety, na GitLabie już nie.
Poniżej moj gitlab-ci

stages:
    - build

docker-build:
    image: docker:latest
    stage: build
    services:
        - docker:dind
    before_script:
        - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
    script: 
        - docker build --pull -t "$CI_REGISTRY_IMAGE" .
        - docker push "$CI_REGISTRY_IMAGE"

Który kończy się błędem

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

Ktoś jest w stanie powiedzieć mi czemu?

0

Nigdy nie korzystałem dłużej z gitlab-ci, ale może trzeba wskazać mu wersje javy przez plik/w konfiguracji?
Dla heroku pamiętam, że kiedyś dla jdk >8 wrzucało się plik system.properties a w nim java.runtime.version=11

1

Rozumiem, że to się buduje w kontenerze maven? To już jest starsza wersja i według tego jest wariant co najwyżej z Javą 9.

0

Najlepiej to zreprodukować lokalnie: https://github.com/johanjanssen/JavaUpgrades/blob/main/java17/pom.xml

  • Użyj najnowszego Maven'a 3.8.3
  • Użyj najnowszej wersji wtyczki (tak jak w tym linku) - zamiast source i target użyj release
  • Sprawdź czy się lokalnie buduje

1 użytkowników online, w tym zalogowanych: 0, gości: 1