도움말 |
---|
title | Maven Wrapper는 어디에 쓰는 물건인지.. |
---|
|
소스코드를 빌드하려고 할 때 보통은 개발자의 노트북이나 PC에 Maven이 설치되어 있어야 합니다. Maven Wrapper는 Maven을 설치하지 않아도 자동으로 Maven을 다운로드하고 빌드를 할 수 있도록 해주는 기능으로써 각 프로젝트에 Maven Wrapper를 추가해두면 Java만 설치되어 있는 Linux 시스템에서도 별도로 Maven을 설치하지 않고 손쉽게 빌드할 수 있습니다. 단, Maven Wrapper는 다음의 경우 쓰기가 어려울 수 있습니다. - Maven Wrapper는 Maven을 다운로드하도록 되어 있으므로 인터넷이 안되는 환경에서는 사용이 어렵습니다.
- Maven Wrapper를 실행시키는 환경에서는 반드시 JDK 또는 JRE가 설치되어 있어야 합니다.
|
Maven Wrapper란?
Maven Wrapper는 Maven을 별도로 설치하지 않더라도 Maven Wrapper가 Maven을 자동으로 다운로드하여 빌드할 수 있도록 지원합니다.
...
이제 mvnw
커맨드를 실행하여 Maven을 실행할 수 있습니다.
코드 블럭 |
---|
language | bashtext |
---|
linenumbers | true |
---|
|
...
# ./mvnw -Dmaven.test.skip=true clean package 20:24:10 git:(master) ✗
Downloading https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Unzipping /Users/fharenheit/.m2/wrapper/dists/apache-maven-3.6.3-bin/lm9vem38rfmjij3jj0mk5bvnt/apache-maven-3.6.3-bin.zip to /Users/fharenheit/.m2/wrapper/dists/apache-maven-3.6.3-bin/lm9vem38rfmjij3jj0mk5bvnt
Set executable permissions for: /Users/fharenheit/.m2/wrapper/dists/apache-maven-3.6.3-bin/lm9vem38rfmjij3jj0mk5bvnt/apache-maven-3.6.3/bin/mvn
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< com.example:authenticating-ldap >-------------------
[INFO] Building authenticating-ldap 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ authenticating-ldap ---
[INFO] Deleting /Users/fharenheit/Downloads/gs-authenticating-ldap/complete/target
[INFO]
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ authenticating-ldap ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ authenticating-ldap ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to /Users/fharenheit/Downloads/gs-authenticating-ldap/complete/target/classes
[INFO]
[INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ authenticating-ldap ---
[INFO] Not copying test resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ authenticating-ldap ---
[INFO] Not compiling test sources
[INFO]
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ authenticating-ldap ---
[INFO] Tests are skipped.
[INFO]
[INFO] --- maven-jar-plugin:3.1.2:jar (default-jar) @ authenticating-ldap ---
[INFO] Building jar: /Users/fharenheit/Downloads/gs-authenticating-ldap/complete/target/authenticating-ldap-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:2.2.6.RELEASE:repackage (repackage) @ authenticating-ldap ---
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.669 s
[INFO] Finished at: 2020-04-19T20:25:26+09:00
[INFO] ------------------------------------------------------------------------ |
Maven Wrapper 프로젝트는 첨부파일을 참고하십시오. Maven Wrapper의 경우 distributionUrl
의 다운로드 경로가 외부에 있는 경우 인터넷 네트워크에 접속이 되어야 합니다. 만약에 내부에서 사용하고자 하는 경우 내부 웹 서버 등을 통해 업로드후 사용하도록 합니다.
Maven Wrapper 다운로드
현재 디렉토리에 Maven Wrapper를 추가하려면 다음의 커맨드를 실행해야 합니다. 단, 이 커맨드도 마찬가지로 인터넷 연결이 되어 있어야 합니다.
코드 블럭 |
---|
language | bash |
---|
linenumbers | true |
---|
|
# mvn -N io.takari:maven:wrapper |
생성된 결과물은 다음과 같이 확인할 수 있습니다.
코드 블럭 |
---|
language | bash |
---|
linenumbers | true |
---|
|
# tree -a .
├── .mvn
│ └── wrapper
│ ├── MavenWrapperDownloader.java
│ ├── maven-wrapper.jar
│ └── maven-wrapper.properties
├── mvnw
└── mvnw.cmd
2 directories, 5 files |
만약에 사용할 Maven의 버전을 명시하고자 하는 경우는 다음과 같이 지정할 수 있습니다.
코드 블럭 |
---|
language | bash |
---|
linenumbers | true |
---|
|
# mvn -N io.takari:maven:wrapper -Dmaven=3.3.3 |
Maven Wrapper를 실행하면 사용자의 홈 디렉토리에 다음의 위치에 다운로드를 하고 사용합니다.
코드 블럭 |
---|
language | text |
---|
linenumbers | true |
---|
|
# cd ~/.m2/wrapper/dists
# tree .
└── apache-maven-3.6.3-bin
└── lm9vem38rfmjij3jj0mk5bvnt
├── apache-maven-3.6.3
│ ├── LICENSE
│ ├── NOTICE
│ ├── README.txt
│ ├── bin
│ │ ├── m2.conf
│ │ ├── mvn
│ │ ├── mvn.cmd
│ │ ├── mvnDebug
│ │ ├── mvnDebug.cmd
│ │ └── mvnyjp
│ ├── boot
│ │ ├── plexus-classworlds-2.6.0.jar
│ │ └── plexus-classworlds.license
│ ├── conf
│ │ ├── logging
│ │ │ └── simplelogger.properties
│ │ ├── settings.xml
│ │ └── toolchains.xml
│ └── lib
│ ├── cdi-api-1.0.jar
│ ├── cdi-api.license
│ ├── commons-cli-1.4.jar
│ ├── commons-cli.license
│ ├── commons-io-2.5.jar
│ ├── commons-io.license
│ ├── commons-lang3-3.8.1.jar
│ ├── commons-lang3.license
│ ├── ext
│ │ └── README.txt
│ ├── guava-25.1-android.jar
│ ├── guava.license
│ ├── guice-4.2.1-no_aop.jar
│ ├── guice.license
│ ├── jansi-1.17.1.jar
│ ├── jansi-native
│ │ ├── README.txt
│ │ ├── freebsd32
│ │ │ └── libjansi.so
│ │ ├── freebsd64
│ │ │ └── libjansi.so
│ │ ├── linux32
│ │ │ └── libjansi.so
│ │ ├── linux64
│ │ │ └── libjansi.so
│ │ ├── osx
│ │ │ └── libjansi.jnilib
│ │ ├── windows32
│ │ │ └── jansi.dll
│ │ └── windows64
│ │ └── jansi.dll
│ ├── jansi.license
│ ├── javax.inject-1.jar
│ ├── javax.inject.license
│ ├── jcl-over-slf4j-1.7.29.jar
│ ├── jcl-over-slf4j.license
│ ├── jsoup-1.12.1.jar
│ ├── jsoup.license
│ ├── jsr250-api-1.0.jar
│ ├── jsr250-api.license
│ ├── maven-artifact-3.6.3.jar
│ ├── maven-builder-support-3.6.3.jar
│ ├── maven-compat-3.6.3.jar
│ ├── maven-core-3.6.3.jar
│ ├── maven-embedder-3.6.3.jar
│ ├── maven-model-3.6.3.jar
│ ├── maven-model-builder-3.6.3.jar
│ ├── maven-plugin-api-3.6.3.jar
│ ├── maven-repository-metadata-3.6.3.jar
│ ├── maven-resolver-api-1.4.1.jar
│ ├── maven-resolver-connector-basic-1.4.1.jar
│ ├── maven-resolver-impl-1.4.1.jar
│ ├── maven-resolver-provider-3.6.3.jar
│ ├── maven-resolver-spi-1.4.1.jar
│ ├── maven-resolver-transport-wagon-1.4.1.jar
│ ├── maven-resolver-util-1.4.1.jar
│ ├── maven-settings-3.6.3.jar
│ ├── maven-settings-builder-3.6.3.jar
│ ├── maven-shared-utils-3.2.1.jar
│ ├── maven-slf4j-provider-3.6.3.jar
│ ├── org.eclipse.sisu.inject-0.3.4.jar
│ ├── org.eclipse.sisu.inject.license
│ ├── org.eclipse.sisu.plexus-0.3.4.jar
│ ├── org.eclipse.sisu.plexus.license
│ ├── plexus-cipher-1.7.jar
│ ├── plexus-cipher.license
│ ├── plexus-component-annotations-2.1.0.jar
│ ├── plexus-component-annotations.license
│ ├── plexus-interpolation-1.25.jar
│ ├── plexus-interpolation.license
│ ├── plexus-sec-dispatcher-1.4.jar
│ ├── plexus-sec-dispatcher.license
│ ├── plexus-utils-3.2.1.jar
│ ├── plexus-utils.license
│ ├── slf4j-api-1.7.29.jar
│ ├── slf4j-api.license
│ ├── wagon-file-3.3.4.jar
│ ├── wagon-http-3.3.4-shaded.jar
│ └── wagon-provider-api-3.3.4.jar
└── apache-maven-3.6.3-bin.zip
17 directories, 85 files
|