build management tool for java
프로젝트의 복잡성을 줄일 수 있다.
라이브러리 없이 프로젝트를 진행하는 경우가 없다.
예전 과정
라이브러리 다운
프로젝트에 라이브러리 등록
라이브러리가 변경될 때 / 새로운 프로젝트를 할 때마다 반복
→ 불편함을 해결 하기 위함 : 중앙저장소
maven
/
Maven Project
Group id : 해당 프로젝트를 진행하는 회사에 대한 정보
일반적으로 회사의 도메인 역순으로 기술
[naver.com](<http://naver.com>) → com.naver
ddit.or.kr → kr.or.ddit
Artifact id : Group id에 해당하는 회사에서 진행하는 프로젝트명
google : Gmail , google drive
Version : 프로젝트의 버전
대.중.소 3.5.2
cited from
The POM
The pom.xml file is the core of a project's configuration in Maven. It is a single coniguration file that contains the majority of information required to build a projects
for java 9 or more
What is Maven? Build and dependency management for Java
Maven consists of three components :
The POM : The file that describes a Maven project and its dependencies.
POM ( project object model) file in its root directory. The pom.xml describes the project's dependencies
The directory : The standardized format for describing a Maven project in the POM
Maven institutes a common project structure and offers a standard file format for descibing how it works. You just plug in your requirements , and Maven calls in dependencies and configures the project for you.
Repositories : Where third-party software is stored and discovered.
centralized repositories : Maven uses centralized repositories to both discover and publish project packages as dependencies. When you reference a dependency in your project, Maven will discover it in the centralized repository, download it to a local repository , and install it into your project.
참고 : Path 변수는 운영체제가 파일의 디렉토리를 파악하는데 사용한다.
Path 변수에 디렉토리를 등록하면 해당 디렉토리에 포함된 파일을 파일 경로 없이 파일 이름만으로도 사용이 가능하다 cmd 창에서 java -version 이 나온다. ??
phase
mvn 명령어를 실행 할 때는 pom.xml 이 존재하는 폴더로 이동해서 실행한다.
mvn clean : 메이븐 빌드과정에서 생성된 결과물(target) 삭제
mvn package : java → class 컴파일 , war 생성( 파일로 묶어주는 것 ( 눈으로 확실히 볼 수 있었다.))
- artifactid-version.war
네트워크가 → 활성화가 된 상태에서만 동작을 한다.
마븐 저장소는 중앙저장소 로컬저장소가 있다.
Maven repository(central, local)
local repository (user/ .m2) (그룹아이디 , 아키텍처 아이디, )
배포를 할때 script를 만드는데 window환경에서 말고 리눅스나 유닉스로 배포를 한다.
maven lifecycle
lifecycle : ( clean - default - site )
clean lifecycle : 기존 build 작업 내역을 삭제
default lifecycle : 프로젝트 빌드
5개의 페이지 :
compile → 기본설정이 java 1.5
test
package
install : 로컬저장소에 배포를 한다. C:\Users\PC08-PC\.m2\repository
(war 파일이 생성이 된다. ) ( bash 에서 mvn install)
deploy : 로컬저장소를 원격저장소에 배포를 하는 것
( 하위에 있는 것들이 항상 같이 실행된다 ( 글에서는 상위애들..)
site lifecycle : 프로젝트 정보 설명 문서
배포
만들어진 war 파일을 tomcat 의 webapps 폴더에 복사
단 컨택스트 패스 (웹 어플리케이션의 이름)를 고려해서 war 파일의 이름을 적절하게 수정
이클립스에서 내부적으로 이루어지는 작업들 큰틀 - 배포 (컴파일 → 서블릿컨테이너(톰캣)에다 서비스가 될 수 있도록 webapps 에 복사 )
수동으로 하는것 ( deploy.sh) 를 만들기
#1. 6.jspSpring/deploy/jsp 폴더에 github 에서 소스코드를 clone ( 한번만 하면 됨 ) cd jsp #2. 소스 코드를 최신화되도록 github 에서 pull
git pull
#2. marven을 이용하여 war 파일로 생성
mvn package
#3. tomcat 이 기동중이라고 가정하고 shutdown.sh 을 실행 ( 서버 종료 )
/d/B_Util/5.ApacheTomcat/apache-tomcat-8.5.37-windows-x64/apache-tomcat-8.5.37/bin/shutdown.sh
#4 2번 과정에서 생성된 파일(jsp-0.0.1-SNAPSHOT.war)의 이름을 jsp.war로 수정 cd target #이름 수정 mv ./jsp-0.0.1-SNAPSHOT.war ./jsp.war
#5.0 webapps 폴더에 존재하는 jsp 폴더와 jsp.war 파일을 삭제
rm /d/B_Util/5.ApacheTomcat/apache-tomcat-8.5.37-windows-x64/apache-tomcat-8.5.37/webapps/jsp.war #확장자 지우는거 rm -rf /d/B_Util/5.ApacheTomcat/apache-tomcat-8.5.37-windows-x64/apache-tomcat-8.5.37/webapps/jsp
#5. 4번과정에서 만들어진 jsp.war 파일을 tomcat 의 weapps 폴더에 복사 cp ./jsp.war /d/B_Util/5.ApacheTomcat/apache-tomcat-8.5.37-windows-x64/apache-tomcat-8.5.37/webapps
#8. tomcat 을 기동 - startup.sh(서버 시작) /d/B_Util/5.ApacheTomcat/apache-tomcat-8.5.37-windows-x64/apache-tomcat-8.5.37/bin/shutdown.sh
톰캣 실행
vash 에서 명령한다.
mkdir deploy → deploy 만듬
mvn package : war 파일로 만드는 명령어
$ mv ./jsp-0.0.1-SNAPSHOT.war ./jsp.war → 이름 변경
$ rm -rf : 삭제
: 복사
ls -al 는 볼 수 있다.
rwxrwxrwx
drwxr-xr-x
drwxr-xr-x
-는 권한이 없다는것
r은 reading write x 는 실행권한
파일 소유자 / 그룹권한 / 모든 사용자
printwriter 객체 생성 재정의 요청 생성할 때마다 서버의 현재시간이 달라진다. new Date 부분을 db 에서 조회한 데이터라고 생각해보면 사용자 별로 요청에 대한 응답을 각각 다르게 생성하는 것이 가능하다. db 에 대한 연동 부분은 html, javascript 만 이용해서는 불가능 ==> 정적 servlet 을 통해 응답으로 생성하는 html 을 동적으로 변경 => 동적 ( servlet/jsp 를 배우는 이유)
댓글
댓글 쓰기