가수면

개발 환경 설정 (feat. Tomcat) 본문

Java

개발 환경 설정 (feat. Tomcat)

니비앙 2023. 11. 27. 22:21

dependencies 설치

build.gradle에 dependencies를 설정해줌 (package.json같은 것인듯?)

 

dependencies확인은 아래에서 확인 가능

https://mvnrepository.com/

implementation group: 'org.apache.tomcat.embed', name: 'tomcat-embed-core', version: '10.1.16'

// 위 코드에서 group, name, version 등 불필요한 부분을 삭제할 수 있음 (Gradle(Short)으로 해도 됨)

implementation 'org.apache.tomcat.embed:tomcat-embed-core:10.1.16'

기본 세팅 예시)

    // tomcat
    implementation 'org.apache.tomcat.embed:tomcat-embed-core:10.1.18'
    implementation 'org.apache.tomcat.embed:tomcat-embed-jasper:10.1.18'

    // Sublet, JSTL
    compileOnly 'javax.servlet:javax.servlet-api:4.0.1'
    implementation 'javax.servlet:jstl:1.2'

    // log
    implementation 'org.slf4j:slf4j-api:2.0.9'
    testImplementation 'ch.qos.logback:logback-classic:1.4.14'

Tomcat 실행을 위한 경로 설정

intelliJ로 설정해야 밑에 과정에서 폴더가 자동 생성됨

gradle보다 intelliJ로 설정하는게 더 빠르다고 함

톰캣의 실행을 위해선 webapps/WEB-INF/classes 밑에 자바 파일을 두라고 공식 문서에 나와있음

따라서 아래 그림처럼 main과 test의 output 경로를 설정한다.

package org.example;

import org.apache.catalina.startup.Tomcat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;

public class WebApplicationServer {
    private static final Logger log = LoggerFactory.getLogger(WebApplicationServer.class);

    public static void main(String[] args) throws Exception {
    	
        // webapp 실행시킬 루트 디렉토리
        String webappDirLocation = "webapps/";
        
        Tomcat tomcat = new Tomcat();
        
        // 포트설정
        tomcat.setPort(8080);

        // "/" url로 접근했을 때 15번 줄의 webappDirLocation를 찾는다.
        tomcat.addWebapp("/", new File(webappDirLocation).getAbsolutePath());
        log.info("configuring app with basedir: {}", new File("./" + webappDirLocation).getAbsolutePath());

        tomcat.start();
        tomcat.getServer().await();
    }
}

이후 main을 실행하면 webapps/WEB-INF/classes 경로에 빌드된 파일이 생성되며 톰캣이 실행됨.

 

 

 

'Java' 카테고리의 다른 글

H2, JDBC, JPA, Hibernate  (2) 2023.12.02
[Spring Boot] 기본  (0) 2023.12.01
[Spring] 심화  (0) 2023.11.30
[Spring] 기본  (0) 2023.11.29
[Java] 기본  (0) 2023.11.29
Comments