메이븐 시작해보기

gyubong park·2020년 11월 16일
0

Maven 자바 프로젝트 생성

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

-DarchetypeArtifactId=maven-archetype-quickstart
다른 사람이 만든 maven-archetype-quickstart 라는 프로젝트 구조를 기본으로

-DartifactId=javaprj
javaprj 라는 새로운 프로젝트로 생성

-DgroupId=com.newlecture
여러 개의 프로젝트를 만들 경우 충돌하지 않도록 그룹ID를 지정

pom.xml이 있는 곳이 root dir
해당 디렉토리로 이동하여 mvn compile하면 해당 소스코드를 javac로 컴파일 가능

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.newlecture</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>

mvn package
jar파일을 생성

jar 파일 실행

java -cp target\javaprj-1.0-SNAPSHOT.jar com.newlecture.App

Build LifeCycle

<phases>
    <phase>validate</phase>
    <phase>initialize</phase>
    <phase>generate-sources</phase>
    <phase>process-sources</phase>
    <phase>generate-resources</phase>
    <phase>process-resources</phase>
    <phase>compile</phase>
    <phase>process-classes</phase>
    <phase>generate-test-sources</phase>
    <phase>process-test-sources</phase>
    <phase>generate-test-resources</phase>
    <phase>process-test-resources</phase>
    <phase>test-compile</phase>
    <phase>process-test-classes</phase>
    <phase>test</phase>
    <phase>prepare-package</phase>
    <phase>package</phase>
    <phase>pre-integration-test</phase>
    <phase>integration-test</phase>
    <phase>post-integration-test</phase>
    <phase>verify</phase>
    <phase>install</phase>
    <phase>deploy</phase>
</phases>

각 Phase마다 Plug-in을 통해 해당 Phase에 실행될 프로그램을 설정할 수 있음

mvn help:describe -Dcmd=compile

* validate: Not defined
* initialize: Not defined
* generate-sources: Not defined
* process-sources: Not defined
* generate-resources: Not defined
* process-resources: org.apache.maven.plugins:maven-resources-plugin:2.6:resources
* compile: org.apache.maven.plugins:maven-compiler-plugin:3.1:compile
* process-classes: Not defined
* generate-test-sources: Not defined
* process-test-sources: Not defined
* generate-test-resources: Not defined
* process-test-resources: org.apache.maven.plugins:maven-resources-plugin:2.6:testResources
* test-compile: org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile
* process-test-classes: Not defined
* test: org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test
* prepare-package: Not defined
* package: org.apache.maven.plugins:maven-jar-plugin:2.4:jar
* pre-integration-test: Not defined
* integration-test: Not defined
* post-integration-test: Not defined
* verify: Not defined
* install: org.apache.maven.plugins:maven-install-plugin:2.4:install
* deploy: org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy
profile
초보 개발자

1개의 댓글

comment-user-thumbnail
2020년 12월 5일

Call of Duty Black Ops의
메이슨이 즐겨하는 건가요?

답글 달기