-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
mvn spring-boot:run 실행불가 (꼭 해결해주세요)
24.04.09 19:32 작성 조회수 285
0
찾아보니 비슷한 질문이 있었던 거 같은데 현재 실습환경과 100% 일치하지 않아 도움을 구합니다.
실행환경은 다음과 같습니다
인텔리제이 : Build #IU-241.14494.240, built on March 28, 2024
JDK : 17
스프링부트 : 3.2.4
아시다 시피 최신 인텔리제이에서는 실습환경으로 제시되는 2.X 버전의 스프링부트 지원이 되지 않습니다.
POM.XML로 강제로 버전을 내리거나 JDK 버전을 내리는 경우 서비스 기동이 제대로 되지 않습니다. 아마 스프링부트 3 버전에서는 JDK 특정 버전 이상을 강제하는 느낌입니다.
현재 pom.xml 설정은 다음과 같습니다.
<?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>3.2.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>user-serivce</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>user-serivce</name>
<description>user-serivce</description>
<properties>
<java.version>17</java.version>
<spring-cloud.version>2023.0.1</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
명렁어 실행 시 에러는 다음과 같이 발생합니다.
[ERROR] Unknown lifecycle phase ".run.jvmArguments=-Dserver.port=9003". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-vers
ion>]:<goal>. Available lifecycle phases are: pre-clean, clean, post-clean, validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sou
rces, 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-site, site, post-site, site-deploy. -> [Help 1]
동일한 명렁어를 윈도우즈 cmd에서 실행하면 다음과 같습니다.
[WARNING] Error injecting: org.springframework.boot.maven.RunMojo
java.lang.TypeNotPresentException: Type org.springframework.boot.maven.RunMojo not present
at org.eclipse.sisu.space.URLClassSpace.loadClass (URLClassSpace.java:147)
(중략)
Caused by: java.lang.UnsupportedClassVersionError: org/springframework/boot/maven/RunMojo has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
본 문제 때문에 강의 진행이 안되고 있습니다.
꼭 해결해 주셨으면 합니다.
답변을 작성해보세요.
0
Dowon Lee
지식공유자2024.04.15
안녕하세요, 이도원입니다.
작업하신 내용의 오류는 Powershell 가 관련이 있는 것 같습니다. Powershell에서는 '-' 이 포함된 옵션을 명령어의 일부로 인식해 버려서 우리가 의도했던 옵션 등의 의미로 사용되지 못하는 경우가 있습니다. 해당 명령어를 Powershell이 아닌 cmd에서 실행하시거나 명령어의 -D 부분부터의 옵션을 " ~ " 로 감싸시거나 ` ~ ` 으로 감싸신 후에 실행해 보시면 정상적으로 실행되실 것 같습니다.
PS C:\work\toy-msa\user-service> mvn spring-boot:run "-Dspring-boot.run.jvmArguments='-Dserver.port=9003'"
PS C:\work\toy-msa\user-service> mvn spring-boot:run `-Dspring-boot.run.jvmArguments='-Dserver.port=9003'`
참고로, Windows Intellij 에서는 Terminal 에서 실행되는 프로그램을 기본적으로 Powershell을 사용하고 있는데, 이것을 다른 것으로 변경해서 사용하실 수 있습니다.
감사합니다.
0
김광수
2024.04.10
터미널이나 cmd 창에서 mvn 명령을 사용하시려면 maven 을 본인 os 맞게 별도 설치하셔야 합니다.
# MAVEN 다운로드
https://maven.apache.org/download.cgi
# 이후에는 path 환경변수에 등록 해 주셔야 합니다.
Ubuntu와 CentOS에서는 환경설정을 모든 OS user가 사용할 수 있도록 /etc/profile에 해 주십시오.
$ vi /etc/profile
export MAVEN_HOME=/usr/local/maven
PATH=$PATH:$HOME/bin:$MAVEN_HOME/bin
export PATH
$ source /etc/profile
류윤환
질문자2024.04.14
mvn 명령어 수행이 안되는 것이 아니라, UserServiceApplication 이 기동되지 않는 것이 문제입니다.
만약 메이븐이 정상적으로 다운로드가 되지 않았거나 환경변수에 설정되지 않았으면 다음과 같은 명령어가 정상적으로 수행되지 않을 것입니다.
류윤환
질문자2024.04.14
자문자답인데요 인텔리제이에 있는 터미널에선 mvn 파라미터를 정확하게 인식하지 못하는 거 같습니다.
윈도우 기본 터미널에서 다음의 명령어로 실행하면 정상적으로 작동합니다.
mvn spring-boot:run -Dspring-boot.run.jvmArguments='-Dserver.port=9003'
답변 2