사이드 프로젝트를 빌드 후, 서버에 올리려고 하는데 jar 파일이 실행이 안된다,,
해결한 방법과, 시도했던 방법들에 대해 적어본다.
실무에서는 jenkins와 같이 CI/CD 환경이 구축돼있다보니 이런 기본적인것부터 막히는게 한심하지만 ㅠㅠ 사이드 프로젝트를 진행하면서 기초부터 경험을 쌓아본다.
(이전에도 같은 이슈때매 한참 고생하다 해결했는데, 그새 까먹어서 이번에는 기록을 해야겠다.)
bootJar
을 실행한다.build artifact로 jar를 만들었었다.
Application의 진입점을 보면
@SpringBootApplication
@ConfigurationPropertiesScan
class ConsumerApplication
fun main(args: Array<String>) {
runApplication<ConsumerApplication>(*args)
}
이렇게 돼있다. 반면에, project artifact 설정에서는
ConsumerApplicationKt
를 기본 패키지명으로 두고있다.
Kt
가 달라서 안되나 싶어서 project artifact 설정에서
진입점을 ConsumerApplication으로 설정했으나, 여전히 안됐다.
생각해보니까, kotlin을 java 코드로 변환하면
public final class ConsumerApplicationKt {
public static final void main(@NotNull String[] args) {
Intrinsics.checkNotNullParameter(args, "args");
String[] args$iv = (String[])Arrays.copyOf(args, args.length);
int $i$f$runApplication = false;
Intrinsics.checkExpressionValueIsNotNull(SpringApplication.run(ConsumerApplication.class, (String[])Arrays.copyOf(args$iv, args$iv.length)), "SpringApplication.run(T::class.java, *args)");
}
}
이렇게 변환된다 ㅎㅎ,, 그래서 클래스 명은 ConsumerApplicationKt가 맞다.
터미널에서 실행된 모습 ㅠㅠ