명령행에서 스프링 프로젝트를 구성할 수 있는 springboot cli 사용법
Spring Boot cli 는 command line 도구로 빠르게 스프링 개발 환경을 구성할 수 있습니다.
Spring Boot cli 설치는 SDKMan 을 사용해서 설치하면 됩니다.
$ sdk install springboot
사용하기
설치가 끝났으면 spring 이라는 명령어로 실행해 보면 됩니다.
$ spring usage: spring [--help] [--version] <command> [<args>] Available commands are: run [options] <files> [--] [args] Run a spring groovy script ...
help 명령어 뒤에 command 를 지정하면 상세 옵션을 볼 수 있으며 다음은 새로운 스프링 프로젝트를 생성하는 init 명령어의 상세 사용법을 표시합니다.
$ spring help init spring init - Initialize a new project using Spring Initializr (start.spring.io) usage: spring init [options] [location] Option Description ------ ----------- -a, --artifactId <String> Project coordinates; infer archive name (for example 'test')
app 실행
Groovy 소스를 run 명령어로 바로 실행할 수 있습니다. spring boot cli 를 사용하면 외부 의존성도 다 결정해 주므로 groovy 를 직접 설치하지 않아도 됩니다.
다음 명령어로 그루비 app 을 직접 실행할 수 있습니다.
$ spring run hello.groovy Resolving dependencies............................. . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.5.2)
기본 포트인 8080 대신 다른 포트를 사용하려면 spring boot 에 포트 옵션을 전달해야 합니다.
스프링 부트에 전달할 옵션은 대시를 2 개 사용 한후에 전달할 옵션을 지정하면 되며 다음은 port 를 9000 으로 사용합니다.
$ spring run hello.groovy -- --server.port=9000
신규 프로젝트 생성
init 명령어를 사용하면 Spring initialzr(https://start.spring.io/) 의 기능을 쉘에서 바로 실행할 수 있습니다.
다음은 maven 기반으로 3 가지 의존성을 가진 spring boot 프로젝트를 생성합니다.
$ spring init --dependencies=web,lombok,data-jpa my-awesome-project
지원 기능 보기
init 에서 지원 가능한 모든 기능을 보려면 --list 옵션을 사용하면 됩니다.
$ spring init --list :: Service capabilities :: https://start.spring.io Supported dependencies +--------------------------------------+--------------------------------------------------------------+--------------------------------+ | Id | Description | Required version | +--------------------------------------+--------------------------------------------------------------+--------------------------------+ | activemq | Spring JMS support with Apache ActiveMQ 'Classic'. | | | | | | | actuator | Supports built in (or custom) endpoints that let you monitor | | | | and manage your application - such as application health, | | | | metrics, sessions, etc. | | | | | | | amqp | Gives your applications a common platform to send and | | | | receive messages, and your messages a safe place to live | | | | until received. | |
신규 프로젝트 생성
--list 옵션 출력 맨 뒤에 기본 설정이 있으므로 기본 설정을 변경하지 않을 경우 생략해도 됩니다.
주의할 점은 camel case 인 Id 를 커맨드 라인에서 전달할 경우 slug 방식으로 변경해야 한다는 것입니다.
예로 packageName 을 커맨드 라인에서 변경할 경우 --package-name 처럼 적어줘야 합니다.
다음은 JDK 16 을 사용하는 gradle 기반 web 프로젝트를 생성합니다.
$ spring init --build=gradle --format=project --java-version=16 --dependencies=web --packaging=jar --package-name=com.lesstif.demo my-new-project