- 빌드란? 컴파일 + 실행
- 빌드 도구는 프로젝트 생성부터 마지막 단계인 배포까지 관리하는 통합 관리 도구를 말한다.
- 프로젝트의 전 과정은 아래와 같다.
1단계 프로젝트 생성
2단계 라이브러리 설정
3단계 코딩(개발) 작업
4단계 컴파일(.class)
5단계 테스트 -> junit 단위 테스트
6단계 패키지 생성
7단계 인스톨(설치) 만들기
8단계 배포
1. 메이븐 다운로드 + 설치 + 설정
https://maven.apache.org/ 접속 후 좌측 Download 메뉴 클릭 후 Files에 있는 apache-maven-3.8.6-bin.zip 다운로드 하기
apache-maven-3.8.6-bin.zip 압축을 푼 뒤에 C드라이브에 넣기

내PC 우클릭해서 속성 -> 고급시스템설정 -> 고급탭 -> 환경변수 설정
시스템변수에서 새로만들기 하여 이름은 M2_HOME으로 변수는 방금 다운로드 받은 apache-maven-3.8.6 폴더 선택

시스템 변수의 path 편집 -> 새로만들기 -> %M2_HOME%\bin -> 확인

cmd에서 mvn -version 명령어로 메이븐이 잘 설치되었는지 확인하기

2. mvn.exe 메이븐 프로젝트 생성하기
이제 Java Project를 생성하는 과정을 진행할 것이다.
1) 메이븐 프로젝트 생성하기
Class 폴더 안에 MvnClass 생성 후 cmd 창에서 cd C:\Class\MvnClass 명령어로 클래스 폴더 경로로 이동

그 후에 아래 명령어 입력 후 실행
mvn archetype:generate -DgroupId=com.newlecture -DartifactId=javaprj -DarchetypeArtifactId=maven-archetype-quickstart
다운로드 받다가 아래 체크된 부분에서 멈춰지면 엔터를 치면 넘어가진다.

다운로드가 완료되면 경로에 javaprj가 생성이 된다.
C:\Class\MvnClass\javaprj
2) 컴파일하기
cd javaprj 명령어 입력하여 프로젝트 폴더명으로 들어가서 mvn compile 명령어로 컴파일 하기

MvnClass에서 컴파일하면 에러발생하니까 꼭 경로를 변경해주자!

에러없이 컴파일이 되고 나면 C:\Class\MvnClass\javaprj\target
target 폴더가 생성되고 App.class 파일들이 만들어진다.
3) 단위 테스트하기
cmd에서 mvn test 명령어로 단위 테스트 진행


4) 패키지 생성하기
mvn package 명령어 입력 후 패키지 생성하기
Building jar: C:\Class\MvnClass\javaprj\target\javaprj-1.0-SNAPSHOT.jar 만들어짐

인스톨(설치) 만들기 위해서 mvn install 명령어 입력
인스톨을 로컬저장소(.m2/repository 경로)에 저장함

아래 경로에 저장되어짐

5) 배포하기
배포 : 로컬저장소에 있는 것을 원격저장소에 저장하는 것
cmd에서 mvn deploy 명령어 사용
(배포는 명령어를 실행하지는 않았다)
여기까지 File -> New -> java project 생성하는 것과 동일한 과정이다.
3. STS툴로 메이븐 프로젝트를 생성(실습)
떠 있는 파일들을 다 닫고 File -> New -> Maven Project 클릭
Use default Workspace location
현재 워크스페이스에 생성하겠다(기본설정) 클릭 후 Next 클릭

Filter에 quickstart 입력 후 version이 1.4인 것을 클릭 -> Next 클릭

Group Id, Artifact Id 설정 후 Finish

아래와 같이 javaprj 라는 메이븐으로 생성한 javaproject가 보인다.
app.java를 열어서 실행시키면 Hello World!가 찍힌다.


여기까지는 maven 빌드 도구로 자바 프로젝트를 생성해보는 실습이다.
3. Dynamic Web Project로 만든 프로젝트를 STS 툴로 그대로 옮겨서 STSMVC02 프로젝트 만들기
File - New - Legacy Project 생성
Project name 입력 후 Spring MVC Project 선택 -> Next 클릭

최상위 패키지(TOP LEVEL) 설정

pom.xml에서 스프링 프레임워크 버전을 4.0.2로 설정

메이븐 버전은 2.5.1로 그대로 두고 소스와 타겟을 1.8로 수정

기존 web.xml의 이름을 web_original.xml 변경하고 springTiles.web.xml을 복사해서 사용
기존 파일 대신에 springTiles에 있는 파일 사용하기 위해 복사 후 WEB-INF에 붙여넣기
root-context.xml -> dispatcher-servlet.xml 사용
servlet-context.xml -> dispatcher-service.xml 사용
스프링 4.0 이상이면 junit은 10 이상을 사용해야 하므로 수정필요(pom.xml)
4.12로 수정하였다.

TOL LEVEL(최상위 패키지)가 org.doit.web이기 때문에
org.doit.web 패키지 안에 controllers, newlecture.dao, newlecture.service, newlecture.vo 패키지 생성
패키지를 생성했다면 springTiles에 있는 클래스와 인터페이스를 해당하는 패키지에 복사하여 붙여넣기

스프링 타일즈를 사용하기 위해서 tiles-defs.xml을 복사하여 WEB-INF에 붙여넣기 한 후
pom.xml에서 설정하기
아래 타일즈 주소로 가서 코드를 복사 붙여넣기 해도되고
https://tiles.apache.org/download.html#Tiles_2_as_a_Maven_dependency
아래 경로에서 검색 후 추가해도 된다.(보통은 해당 경로에서 검색하여 사용)

위에서 스프링 타일즈를 사용하기 위해 pom.xml에 코딩한 것처럼 필요한 모듈을 추가해야하는데 이전에는 lib 폴더에 직접 추가했다면 메이븐 프로젝트는 pom.xml에 코딩을 하면 자동으로 추가가 되어진다.
pom.xml에 필요한 모듈을 추가하는 코딩을 하자!
dependencies 태그 안에 dependency 태그로 필요한 모듈을 추가해주면된다.
여기서 JDBC는 스프링 버전이 달라지면 모듈도 수정해야하기 때문에 version 태그에 ${org.springframework-version} 코딩을 하여 스프링 버전이 달라지면 자동으로 변경되어지게 해준다.
<!-- 1. tiles 관련 http://tiles.apache.org 접속하여 maven dependency 클릭 후 코드 복사 붙여넣기 -->
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>2.2.2</version>
</dependency>
<!-- 2. Spring JDBC 설정 https://mvnrepository.com/ -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<!-- 스프링 버전이 바뀌면 JDBC 버전도 바뀌어야 하기 때문에 version에 아래와 같이 코딩 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- 3. fileUpload -->
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2</version>
</dependency>
<!-- 4. spring io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.2</version>
</dependency>
<!-- 5. cglib -->
<!-- https://mvnrepository.com/artifact/cglib/cglib -->
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2</version>
</dependency>
<!-- 6. tomcat-dbcp -->
<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-dbcp -->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-dbcp</artifactId>
<version>8.5.73</version>
</dependency>
이제 ojdbc6.jar 모듈도 추가해야하는데 오라클 라이센스 문제 때문에 중앙저장소(서버)에 없어서 로컬저장소에 저장을 할 수 없다.
mvn.exe 로컬저장소에 직접 저장(install) 후 pom.xml에 코드를 추가해주어야 한다.
cmd에서 ojdbc6.jar 파일이 있는 경로로 이동을 한 뒤
해당 경로에서 아래 명령어를 입력하여 실행시키자
mvn install:install-file "-Dfile=ojdbc6.jar" "-DgroupId=com.oracle" "-DartifactId=ojdbc" "-Dversion=6.0" "-Dpackaging=jar"

실행을 시키면 아래와 같이 화면이 나오는데 아래 경로에 추가가 되어진 것을 확인할 수 있다.
C:\Users\Yelin Park\.m2\repository\com\oracle\ojdbc\6.0\ojdbc-6.0.pom


이제 pom.xml에 ojdbc6.jar 모듈을 추가해준다.

컴포넌트 스캔 기능을 사용하기 위해서는 dispatcher-servlet.xml에서
base-package를 org.doit.web인 TOP LEVEL로 수정해주어야한다.

레거시 프로젝트를 생성하면 기본으로 주는 HomeController가 있기 때문에 해당 클래스의
@Controller 애노테이션은 삭제하거나 주석처리를 해준다.
아니면 파일 자체를 삭제해도 괜찮다.
'TIL > Spring' 카테고리의 다른 글
[SIST] Spring_days09_SpringTiles 프로젝트를 옮겨서 STS툴로 STSMVC03 만들기 + root-context와 servlet-context로 사용 (0) | 2022.07.21 |
---|---|
[TIL] Maven(메이븐)과 Spring Tool Suite(STS) (0) | 2022.07.20 |
[SIST] Spring_days08_STS(Spring Tool Suite)와 Spring Legacy Project로 메이븐 프로젝트 생성하기 (0) | 2022.07.20 |
[SIST] Spring_days07/08_스프링 타일즈(Tiles) (0) | 2022.07.20 |
[SIST] Spring_days07_스프링 트랜잭션 격리 레벨(Isolation) (0) | 2022.07.19 |