ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Maven 설치 및 설정
    JAVA/웹 프로그래밍 - Spring 2020. 12. 7. 22:29

    우리가 앞에서 서블릿에서 게시판 만들기에서 

    이미지 업로드 시에 cos.jar파일을 WEB-INF/lib폴더에 추가해야 했다.

    그리고 오라클을 설정했을 때도, jdbc드라이버도 lib에 추가를 해야 했다.

    너무 불편했다. 이는 설정 만으로도 인터넷에서 다운로드 해주는 일을 하는 애가 있다.

    이것이 Maven이다.
    이는 pom.xml에서 설정한다.

    maven은 설정 단계가 많다.

     

    maven.apache.org로 이동한다.

    다운로드 탭으로 이동한다.

     

    아래의 파일을 다운로드 하고 압축을 풀자.

    C드라이브에 이 폴더를 저장하자. 폴더 명을 짧게 maven으로 변경하자. 

    폴더 내부로 들어가 보자.

    bin폴더에 mvn.cmd 파일이 실행파일이다.

     

    그리고 여기서 홈 디렉토리를 등록해야 한다.

    윈도우 탐색기를 열어서 "내 PC"를 선택한 다음에 우클릭 해서 속성을 선택하자.

    그리고 왼쪽 탭에서 "고급 시스템 설정" 을 선택하자.

    "고급" 탭을 선택하고 "환경 변수"를 선택한다. 환경변수는 OS가 참고할 수 있는 변수를 의미한다.

    admin에 대한 사용자 변수와 시스템 변수가 있는데, "시스템 변수"에서 "새로 만들기"를 선택한다.

    변수 이름은 MAVEN_HOME 이라 하자.

    변수 값에 C:\maven 이라 하자.

    변수 값은 maven의 위치이다. 그리고 확인 버튼을 누른다.

     

    시스템 변수에 MAVEN_HOME과 C:\maven이 있는지 확인해보자.

    그리고 홈 디렉토리에 Path를 걸어줘야 한다. cmd 창을 열자.

    환경 변수 창을 닫지 말자.

    dir을 입력하자.

    ipconfig -all을 입력하면 그 명령어가 실행이 되는데, 이와 같이 실행되는이유는 path가 걸려있어서 그렇다.

    (dir을 입력하면 ipconfig에 대한 내용이 아예 없는데도 실행이 되는 이유가 바로 path가 걸려있어서 그런 것이다.)

    cmd창에 mvn이라고 입력해보자. 아래와 같은 메시지가 뜬다.

    홈 디렉토리에 path를 걸어서 위의 mvn 명령어를 쓰기 위해 패스를 걸어줘야 한다.

    "시스템 변수"에서 Path를 더블 클릭해서 "새로 만들기"를 선택하자.

     

    그리고 아래와 같이 %MAVEN_HOME%\bin 를 입력하자.

    %MAVEN_HOME%\bin              <- 명령어는 C:\maven/bin폴더에 있다.

    그리고 확인 버튼을 선택한다. 그리고 창을 모두 닫는다.

    cmd창을 닫았다가 다시 열자.

    cmd창에 mvn이라 입력하자.

    아까와는 다르게 뭔가 뜬다.

    그리고 mvn -version이라고 입력해보자.

    아래와 같이 뭔가가 뜬다.

    여기까지가 기본적인 설정이 끝났다.

    각 단계에 별로 진행해보자.

     

    1. 프로젝트 생성

    작업 디렉토리를 만들어 보자.
    cmd창에서 명령어를 이용해서 계정 명으로 이동을 하자. 아래와 같다.

    ( 계정명은 모든 사용자마다 다를 것이다. )

    아래와 같이 명령어를 차례로 입력하자.

    mkdir mavenwork 라고 명령어를 하고
    dir mavenwork 치고
    cd mavenwork 로 입력해서 해당폴더에 들어 가자.
    이 폴더 내에서 자바 프로젝트를 만들 것이다. 아래와 같이 mavenwork 폴더에 들어가자.

    이 폴더에 자바 프로젝트를 생성할 것이다.

    이번 명령어는 상당히 길다.

    mvn archetype:generate -DgroupId=com.iot -DartifactId=javaprj -DarchetypeArtifactId=maven-archetype-quickstart

    위의 명령어를 치면 뭔가 다운로드가 된다.

    속성에는 D가 붙고, groupId는 패키지와 같고, artifactId는 프로젝트의 명이다. D(디펜던스)는 의존성의 약자이다.

    그리고 Id에서 I는 i의 대문자이다. 무언가 설치가 되다가 SNAPSHOT에서 엔터키 입력하고 Y를 차례로 입력하면 된다.

    아래와 같다. 아래와 같은 문구가 뜨면 엔터키를 입력한다.

    그리고 다음과 같은 문구가 뜨면 Y를 입력하고 엔터키를 입력한다.

    그러면 아래와 같이 BUILD의 성공 혹은 실패 여부가 나타난다.

    만약 BUILD 실패가 뜨더라도 괜찮다. 아래에서 그에 대한 처리를 할 것이다.

    그리고, 설치한 경로로 이동하면, pom.xml이 보일 것이다.

     

     

    2. Compile

    설치한 경로를 다음과 같이 따라 가면 자바 파일이 보일 것이다.

    cmd창에서 cd mavenwork 명령어를 이용해서 mavenwork 폴더 내에 들어와서 

    dir 명령어를 치면 javaprj가 있음을 볼 수 있다.
    cmd창에서 cd javaprj 명령어로 이동해서(프로젝트 폴더 내에 들어가자.) 다음과 같다.

    그리고 cmd창에 mvn compile이라고 입력하자. 뭔가 나온다.

    다음과 같이 에러가 뜨는 이유는 버전의 문제이다.

    에러가 뜨지 않고 BUILD SUCCESS이면 그냥 지나치면 된다.

    해결책은 간단하다. 아래의 경로에 있는 pom.xml 파일을 열어서 버전을 수정해주면 끝난다.

     

    pom.xml을 열자.

    아래는 기존의 pom.xml 파일의 내용이다.

    더보기
    <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.iot</groupId>
      <artifactId>javaprj</artifactId>
      <packaging>jar</packaging>
      <version>1.0-SNAPSHOT</version>
      <name>javaprj</name>
      <url>http://maven.apache.org</url>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </project>

    기존의 </dependencies>태그의 바로 아래에 <properties>에서 </project> 태그의 내용을 추가만 하면 끝난다.

    아래는 수정한 pom.xml 파일의 내용이다.

    더보기
    <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.iot</groupId>
      <artifactId>javaprj</artifactId>
      <packaging>jar</packaging>
      <version>1.0-SNAPSHOT</version>
      <name>javaprj</name>
      <url>http://maven.apache.org</url>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    </project>

     

    cmd 창에 다시 mvn compile 명렁어를 적고 실행하자.

    다음과 같이 BUILD SUCCESS를 볼 수 있다.

    그리고 프로젝트 폴더에 target 폴더가 생긴다.

    그리고 target/classes/com/iot폴더에 App.class 파일이 생긴다. 이는 컴파일이 된 것이다.

     

    3. 패키지 단계
    배포를 위해서는 jar파일을 만들어야 한다.
    cmd 창에서 mvn package 라고 입력하자. 아래와 같이 빌드 성공이 뜨면 된다.


    target 폴더에 jar파일이 생성이 됨을 알 수 있다.

     

     

    4. 실행
    사용(배포)을 해보자,
     jar파일을 이용해서 실행해보자.
     프로젝트 경로의 target/classes/com/iot의 App.class 파일을 실행하는 것이 아닌 jar파일을 사용한다.

    cmd 창에서 java -cp target\javaprj-1.0-SNAPSHOT.jar com.iot.App 이라고 입력하자.

    javaprj-1.0-SNAPSHOT.jar 파일의 com.iot.App을 실행한다는 것이다.

    실제 실행하는 파일은 javaprj-1.0-SNAPSHOT.jar 파일의 com폴더의 iot폴더의 App.class이다.

    즉, target/classes/com/iot폴더의 App.class 파일이 아니다.

     

    의존성은 라이브러리 다운로드 자동화의 기능을 한다.

    pom.xml에 dependency태그를 볼 수 있다.

    라이브러리 관리에 반드시 필요하다.

    다른데서 다운로드하지 않고 여기서 설정하면 끝이다. 

    기존의 Dynamic Web Project에서의 Web-INF/lib 폴더가 더 이상 필요하지 않다.
    그리고 class path 환경 설정도 할 필요 없다. 다만, 인터넷이 반드시 연결되어 있어야 한다.

    pom.xml은 프로젝트 당 하나씩 가진다.

    jar파일은 일반 프로젝트를 배포 파일이고 war파일은 웹 프로젝트의 배포 파일이다.

     

    위의 과정 중에서 필요한 과정은
    compile -> test -> package -> install -> deploy 인데,
    compile -> test -> package 까지가 중요 단계이다. 

     

    이클립스와 maven은 연결되어 있다. 이클립스에서 프로젝트를 하나 만들어 보자.

    마우스 우클릭 New -> Other에서 아래와 같이 Maven Project를 선택한다.

    그리고 Next를 선택한다.

    아래와 같이 Create a simple project를 체크하고 Next를 선택한다.

    아래와 같이 적는다. 그리고 Finish를 선택한다.

     

    다음과 같은 계층 구조를 볼 수 있다.

    그리고 pom.xml을 열어보자. 위에서 했던 것과 마찬가지로 properties 태그를 붙여 넣는다.

    pom.xml

    더보기
    <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.iot</groupId>
      <artifactId>javaprj</artifactId>
      <packaging>jar</packaging>
      <version>1.0-SNAPSHOT</version>
      <name>javaprj</name>
      <url>http://maven.apache.org</url>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    </project>

     

    그리고, 현재 프로젝트인 javaprj를 선택하고 우클릭 해서 Maven 탭에서 Update Project를 선택하자.

    그러면 기존의 JRE System Library의 J2SE-1.5버전이 1.8로 변경됨을 볼 수 있다.

    아래와 같이 OK버튼을 선택한다.

     

    아래와 같이 버전이 1.5에서 1.8로 변경되었다.

     

    만약 나중에 라이브러리를 설치하다가 오류가 난 경우에는 라이브러리를 지워줘야 한다.

    라이브러리의 경로를 알아내기 위해서는 우선 Maven Repositories 탭으로 이동해야 한다.

    만약 Maven Repositories탭이 보이지 않는다면 다음과 같이 탭을 추가하자.

    아래의 그림과 같이 Windows탭을 선택하고 Show View를 선택하고 Other를 선택한다.

     

    다음의 그림과 같이 maven이라 입력하고 Maven Repositories를 선택하고 Open을 클릭한다.

     

    Maven Repositories 탭에서 다음과 같은 경로를 볼 수 있다.

    이 경로로 이동해서 repository 폴더 내에 들어가서 설치한 라이브러리를 지우면 된다.

    위의 경로를 찾아가면 아래와 같은 모습이다.

    여기서 문제가 되는 라이브러리를 삭제하면 된다.

     

     

    아래의 내용에서 프로젝트들을 Maven 프로젝트로 변경해보자.

    designatedroom87.tistory.com/336

     

    프로젝트를 Maven 프로젝트로 변경하기

    아래의 내용을 참고해보자. designatedroom87.tistory.com/334?category=909022 Maven 설치 및 설정 우리가 앞에서 서블릿에서 게시판 만들기에서 이미지 업로드 시에 cos.jar파일을 WEB-INF/lib폴더에 추가해..

    designatedroom87.tistory.com

     

    댓글

Designed by Tistory.