Maven을 이용한 빌드와 배포

갓김치·2020년 12월 3일
0

기타

목록 보기
11/16

보강
Maven
d_buitl 압축풀기
conf폴더-settings.xml의 55번에 아래추가
D:/B_Util/6.maven/.m2/repository
이클
winodw-preferences-maven-installation-add-directory- (D:\B_Util\6.maven\apache-maven-3.6.3)- 목록에서 해당 체크

user settings- browse-maven폴더-conf-settings.xml
이 이후작업이 오래걸림
show view- maven repositories
global repositories - central - 우클릭 - rebuild index - ok - 밑에 퍼센테이지돌아감

이작업하고나서 시작

빌드

  • 소스개발에서 최종 사용자에게 전달될때까지의 전 과정, 즉 프로젝트의 생명주기 전체를 아우르는 행위
  • 개발과정
    • 소스만들고 컴파일
    • 내가 만든 코드가 설계구조에 맞게 잘 된건지 테스트
    • 패키징 (배포 전단계)
    • 배포
  • phase: 생명주기 내에서 각 단계
  • maven은 소규모 프로젝트에서는 굳이 필요 없음
  • 신입개발자에게 maven의 장점
    • 템플릿 프로젝트를 만들어준다
      • 전형적인 구조로 프로젝트 개발관리 툴을 만들어줌
    • jar파일 관리
    • 오늘 주안점: 이 두가지!
  • 중앙저장소
    • search.maven.org 에서 중앙저장소에 있는 jar파일 검색가능
    • commons-io 치면 원본 아류 다나옴
    • de.unring.commons: 그룹아이디
    • Artifact ID로 구별가능
    • 맘에드는거 있으면 로컬로 옮경

목적

  • 정형화된 개발환경
  • 다양한 라이브러리 의존성 관리
  • 코드 품질 관리 및 결함 관리

개인빌드

통합빌드

  • 각 개발자가 만든 산출물을 통합적으로 관리
  • hudson, jenkins (따로 통합서버 필요)

MAVEN 설치

  • 3점대 : M2_HOME
  • 2점대 : MVN_HOME
  • %M2_HOME%\bin 환경변수에 이거 추가
    • 실행파일있는곳을 추가해준것
  • windows-maven-user settings

cmd

mvn -version : 버전확인

global repositories - central

  • 어디에 뭐가 있다는 정보를 우리 것 목차로 바꿔준것 = rebuild indexing
  • 어디에 뭐가 있다는 걸 알기때문에 검색가능
  • rebuild indexing 한 이유: 검색기능ㅎ활용하여 eclipse에서 바로바로 jar파일 가지고 오려고

maven project

  • packaging
    • j(java)ar: standalone, 설치형
    • w(web)ar: web application
      • was에게 가져다주면 was가 알아서 인지하고 언패킹
  • finish하면 퍼센트올라감: 각 페이즈를 지원하는 플러그인 다운중
  • main: 개발영역
  • test: 테스트하기 위한 테스트코드, 절대가 배포가 안 되는 영역
  • o 부분에서 개발, x는 메이븐의 영역, 둘은 같긴 같음
  • target: 메이븐의 클래스패스

Maven 아키텍처


노란색이 페이즈

  • 나 이 단계 플러그인 싫엉 -> pom.xml에다가 얘기해..

pom.xml에서 Effectvie Pom

  • 여기서 사용플러그인 확인가능
  • 플러그인을 재등록해서 사용해야함
  • 프로젝트 우클릭 - maven - add plugin 해서 maven-compiler-plugin쳐서 원래것의 최신본받아
  <build>
  	<plugins>
  		<plugin>
  			<groupId>org.apache.maven.plugins</groupId>
  			<artifactId>maven-compiler-plugin</artifactId>
  			<version>3.8.1</version>
            <!--따로 추가 -->
  			<configuration> 
  				<source>1.8</source>
                <target>1.8</target>
  			</configuration>
            <!-- -->
  		</plugin>
  	</plugins>
  </build>
  • 프로젝트 우클릭 - maven - update project

jar 추가

  • 우클릭 - maven - add dependency (또 중앙저장소에서 검사)
  • 이렇게 검사하나 중앙저장소가서검색해서 xml복ㅈ붙하나 똑같

사실 메이븐 저장소는 하나가아니다,,?

https://mvnrepository.com/

  • 센트럴뿐만아니라 어지간한 사제저장소도 다뒤진다

개발끝->배포해야돼

run as - maven build - goals:clean - RUN
네비게이터에서 target f5햇더니 컴파일 된 클래스파일들 날라갓음
run as - maven build... - goals:compile - run
run as - maven install (인스톨하라했더니 다시 컴파일먼저 하고 테스트도 함,, )




archetype: 템플릿

또 컴파일러1.8만들어주기

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>kr.or.ddit</groupId>
  <artifactId>sampleWebMVN</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <!-- 하드코딩방지 -->
  <properties>
  	<java-version>1.8</java-version>
  </properties>
  <!-- -->
  <build>
  	<plugins>
  		<plugin>
  			<groupId>org.apache.maven.plugins</groupId>
  			<artifactId>maven-compiler-plugin</artifactId>
  			<version>3.8.1</version>
  			<configuration> 
              <!-- 플레이스홀더 -->
  				<source>${java-version}</source>
                <target>${java-version}</target>
              <!-- -->
  			</configuration>
  		</plugin>
  	</plugins>
  </build>
</project>

web.xml 없어도된다

  		<plugin>
  			<groupId>org.apache.maven.plugins</groupId>
  			<artifactId>maven-war-plugin</artifactId>
  			<version>3.3.1</version>
  			<configuration>
  				<failOnMissingWebXml>true</failOnMissingWebXml>
  			</configuration>
  		</plugin>

web.xml안쓰려면,, 3.0이되어야겟지
프로젝트 - 알트엔터 - project facets - dynamic web module 3.1로 변경 - 이래도 이클립스가 못읽네,, - 프로젝트 우클릭 - java ee tools - generate deploy어쩌구 - 만들고 지웠더니 3.1로 인식함 -

웹앱라이브러리 없네.. 어케받지 -> 또 디펜던시 ㄱㄱ - javax.servlet-api

scope

기본값 compile, 개발 배포후에도 계속쓰겟다
서버제공하는걸쓰겟다 provided: 개발때만쓰고 배포때는 버리고가겟다
test할때만 쓰겟다

  • jsp를 위한 dependency

    이클립스 내부서버 클린, remove

    과제

    제출 개발환경구축 보고서
    jdk 설치, tomcat설치, 환경변수셋팅, maven설치, maven환경변수설치, eclipse연동작업 => 보고서

  • git 사용환경까지
  • 내일아침오전9시
profile
갈 길이 멀다

0개의 댓글