https://start.spring.io
위 사이트에서 새 프로젝트를 만든다.
프로젝트 생성, 테스트 빌드, 배포등의 작업을 위한 프로그램이다.
각 라이브러리들을 번거롭게 모두 다운받을 필요없이, 빌드도구 설정파일에 필요한 라이브러리 종류와 버전들, 종속성 정보를 명시하여 필요한 라이브러리들을 설정파일을 통해 자동으로 다운로드 해주고 이를 간편히 관리해주는 도구이다.
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.programming.mitra</groupId>
<artifactId>java-build-tools</artifactId>
<packaging>jar</packaging>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
</plugin>
</plugins>
</build>
</project>
apply plugin:'java'
apply plugin:'checkstyle'
apply plugin:'findbugs'
apply plugin:'pmd'
version ='1.0'
repositories {
mavenCentral()
}
dependencies {
testCompile group:'junit', name:'junit', version:'4.11'
}
Gradle이 Maven 보다 훨씬 간결하고, 빌드시간도 Maven보다 빠르기에 Gradle을 선택하기로 한다.
초심에 맞게 자바로 설정 아 코틀린 해보고싶다
SNAPSHOT은 아직 릴리즈 되지 않은 버전이다.
SNAPSHOT을 제외한 정식 릴리저 버전 중 가장 최신버전인 2.5.2버전을 채택한다.
group에는 보통 도메인명이 들어간다. 예를들어 네이버 같은 경우는 www.naver.com 이니
com.naver 이런 식으로 그룸명이 설정된다.
빌드된 결과물명
project명
project 설명
프로젝트 내에있는 패키지 명
둘 다 압축(아카이브) 파일이며 어플리케이션을 쉽게 배포하고 동작시킬 수 있도록 있도록 관련 파일(리소스, 속성파일 등)들을 패키징해주는 것이 주 역할이다.
.jar 확장자 파일에는 Class와 같은 Java 리소스와 속성 파일, 라이브러리 및 액세서리 파일이 포함되어 있다.
쉽게 JAVA 어플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일이다.
.war 확장자 파일은 servlet / jsp 컨테이너에 배치 할 수 있는 웹 어플리케이션(Web Application) 압축 파일 포맷이다.
JSP, SERVLET, JAR, CLASS, XML, HTML, JAVASCRIPT 등 Servlet Context 관련 파일들로 패키징 되어있다.
WAR는 웹 응용 프로그램를 위한 포맷이기 때문에 웹 관련 자원만 포함하고 있으며 이를 사용하면 웹 어플리케이션을 쉽게 배포하고 테스트 할 수 있다.
원하는 구성을 할 수 있는 JAR 포맷과 달리 WAR은 WEB-INF 및 META-INF 디렉토리로 사전 정의 된 구조를 사용하며 WAR파일을 실행하려면 Tomcat, Weblogic, Websphere 등의 웹 서버 (WEB)또는 웹 컨테이너(WAS)가 필요하다.
여차하면 나중에 바꿀 수 있으므로 일단은 jar로 시작하자
싸지방에 설치되어있는게 8버전이다.....
Spring boot에 사용할 라이브러리를 넣으면 된다.
각 라이브러리에 있는 친구둘은 뒤에서 알아보도록 하자...! 지금 설명하기 귀찮은건 안비밀...생각해보니까 차피 나중에 해야하는데;; 조삼모산데...
GENERATE를 클릭하면 압축파일 하나가 나온다. 압축 해제 후 원하는 ide로 실행하자
main과 test로 나뉘는 것을 볼 수 있는데, main은 실제 패키지내에 있는 소스코드, test는 테스트코드가 들어간다.
plugins {
id 'org.springframework.boot' version '2.5.2'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.rptp'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
test {
useJUnitPlatform()
}
우리가 아까 설정한대로 build.gradle파일이 입력된 것을 볼 수 있다.
Application.java를 실행시켜도 되고, 프로젝트 최상위 폴더에서 (build.gradle가 같은 위치의 폴더) cmd로 gradle bootRun을 입력해도 된다.
github에 push하고 로컬에서 해당 프로젝트 삭제했다가, 새로 생성
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8
빌드 도구, Maven 이란? https://junshock5.tistory.com/114
빌드 관리 도구 Maven과 Gradle 비교하기. https://jisooo.tistory.com/entry/Spring-%EB%B9%8C%EB%93%9C-%EA%B4%80%EB%A6%AC-%EB%8F%84%EA%B5%AC-Maven%EA%B3%BC-Gradle-%EB%B9%84%EA%B5%90%ED%95%98%EA%B8%B0
Java JAR WAR 차이점 및 특징 ( + EAR ) https://ifuwanna.tistory.com/224