김규성
134
2021-04-02 14:32:03
4
119

maven 어떻게 실행하나요?


이제 막 자바를 시작하여 JSP MVC Servlet를 끝내고 Maven으로 넘어왔습니다.

오늘 첫날이라 아무것도 몰라 그냥 온라인에 나와 있는 강좌를 그대로 따라하고 있습니다.

일단 apache-tomcat사이트에서 zip으로 압축된 maven을 다운로드받아 압축을 풀었구요.

bin디렉토리를 path에 등록했습니다.


그리고 도스창에서

"mvn archetype:generate"

이렇게 입력하고 엔터키를 치니 

중간 중간에 뭐를 입력하라고 나오는건 강좌를 보면서 그대로 따라 하니 프로젝트가 생성되었습니다.


그 다음 생성된 프로젝트 루트폴더에 가서 pom.xml를 열고


  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

이렇게 컴파일과 실행환경 버젼을 1.5에서 1.8로 바꿨구요.


그리고 컴파일을 하기 위해 "mvn clean install"를 입력하여 아래와 같이 아무 에러없이 실행되었습니다.



"mvn compile"라고 입력하면 컴파일 된다고 해서 그대로 따라 하니 에러없이 잘 된것 같습니다.



컴파일 된 다음에는 자동 생성된 샘플코드를 실행하기 위해 "mvn exec:java"를 입력하고 엔터키 치라고 해서 그대로 따라 했습니다.

그런데 강좌에서는 "Hellow world!"라는 문구가 나온다는데

전 아래와 같이 에러가 납니다.


몇번을 다시 해 보고 혹시 글자 하나 빠진게 있는지 다 뒤져봐도 강좌와 다른 것이 없는데

전 이렇게 실행이 안되고 에러가 나서 혹시 강좌가 잘못된거 아닌지 의심스럽기까지 합니다.


제가 뭘 잘못한건가요?


pom.xml에서 컴파일환경과 실행환경 버젼만 1.5에서 1.8로 고친것 이외에는 소스코드 일절 건드린거 없고,

그나마도 강좌에서 고치라 해서 고친건데요.


참고로 자동으로 생성된 main함수와 pom.xml은 아래와 같습니다.


package com.example.example01;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}


<?xml version="1.0" encoding="UTF-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>com.example.example01</groupId>
  <artifactId>MvnExample01</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>MvnExample01</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.7.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>


0
  • 답변 4

  • kenu
    52k
    2021-04-02 14:37:00

    https://www.mojohaus.org/exec-maven-plugin/usage.html


  • kenu
    52k
    2021-04-02 14:38:04

    https://chiftkey.tistory.com/2

  • 김규성
    134
    2021-04-02 14:38:09

    다른 사이트를 찾아보니

    mvn exec:java -Dexec.mainClass=com.example.example01.App

    이렇게 실행하면 된다고 해서 그대로 해보니 잘 되는데요.

    왜 전 강좌에서 처럼 "mvn exec:java"명령으로 실행이 안되는건가요?

  • 김규성
    134
    2021-04-02 15:02:07

    pom.xml에 아래 코드 추가하니 "mvn exec:java"만 입력하여 실행이 되네요.

    
            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>exec-maven-plugin</artifactId>
              <version>3.0.0</version>          
              <configuration>
                <mainClass>com.example.example01.App</mainClass>
              </configuration>          
            </plugin>

    강좌하시는 분이 빼먹었나 봅니다. ㅡ,.ㅡ



  • 로그인을 하시면 답변을 등록할 수 있습니다.