부트 1
메이븐 3.2+ 버전을 준비한다
부트 애플리케이션 실행
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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>learn</groupId>
<artifactId>learn-spring-boot1-maven</artifactId>
<version>0.1.0</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.22.RELEASE</version>
</parent>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
이 상태에서 mvn spring-boot:run으로 스프링 부트 애플리케이션을 실행할 수 있다. 하지만 다음 에러가 발생한다
Unable to find a suitable main class, please add a 'mainClass' property
메인 클래스를 찾을 수 없다고 하니, 메인 클래스를 추가해보자
package learn;
import org.springframework.boot.SpringApplication;
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
다시 mvn spring-boot:run 하니 다른 에러가 발생한다
Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
@EnableAutoConfiguration 애너테이션을 추가해보자
@EnableAutoConfiguration
public class Application {
아래와 같이 내장 톰캣이 8080포트로 시작되고 스프링 부트 애플리케이션도 시작된다
2024-03-09 19:22:54.340 INFO 67988 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2024-03-09 19:22:54.350 INFO 67988 --- [ main] learn.Application : Started Application in 8.718 seconds (JVM running for 14.057)
Executable jar로 패키징
Executable jar로 프로젝트를 패키징하기 위해 POM에 spring-boot-maven-plugin을 추가한다
..
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
$ mvn package
..
[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ learn-spring-boot1-maven ---
[INFO] Building jar: /Users/nhn/IdeaProjects/learn-spring-boot1-maven/target/learn-spring-boot1-maven-0.1.0.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:1.5.22.RELEASE:repackage (default) @ learn-spring-boot1-maven ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
..
repackage goal이 실행된다
target 폴더를 보면 원래는 .jar 파일만 있어야 하는데 .jar.original 파일도 생긴다
터미널에서 jar tvf target/learn-spring-boot1-maven-0.1.0.jar를 실행해보면 애플리케이션 코드에 대한 클래스 파일 뿐만 아니라 라이브러리에 대한 jar 파일들도 함께 패키징된 것을 확인할 수 있다
이제 터미널에서 java -jar target/learn-spring-boot1-maven-0.1.0.jar 명령을 통해 스프링 부트 애플리케이션을 실행할 수 있게 된다
Fully executable jar로 패키징
POM
..
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
..
$ mvn package
이제 ./application.jar로 실행 가능하고 application.conf 설정 파일이 적용된다
부트 2
추후 작성
부트 3
추후 작성
Maven Wrapper 만들기
mvn wrapper:wrapper
'Spring > Spring Boot' 카테고리의 다른 글
| Spring Boot > Fully executable jar 실행 시 MyBatis 에러 (0) | 2024.04.18 |
|---|---|
| Spring Boot > Boot 1을 Boot 2로 전환 (0) | 2024.03.25 |
| Spring Boot > 애플리케이션 실행 방법 (0) | 2024.03.08 |
| Spring Boot > 문제 해결 > 내장 톰캣 사용 시 IntelliJ IDEA에서 src/main/webapp/WEB-INF 아래의 JSP 파일을 정상적으로 읽지 못하는 이슈 (0) | 2024.02.22 |