1. Dependency 를 폴더에 담기
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
goal : dependency:copy-dependencies
2. Dependency 를 jar 에 포함시키기
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.1</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
goal : assembly:assembly
파일 생성 시 2가지 종류의 파일이 생성됩니다.
- xxx-0.0.1-SNAPSHOT.jar :: 기본 생성 파일
- xxx-0.0.1-SNAPSHOT-jar-with-dependencies.jar :: dependency 포함 파일 (당연히 파일 크기도 큽니다)
실행 JAR (Executable JAR) 파일의 경우 위와 같이 하면 ‘xxx-0.0.1-SNAPSHOT-jar-with-dependencies.jar에 기본 Manifest 속성이 없습니다.’ 와 같은 에러문구를 마주하게 됩니다. Manifest 설정이 빠져서 그런데 아래와 같이 작성해주셔야 합니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.1</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.sangron.youtube.article.Article</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
관련 링크
Maven Executable Jar - 실행 Jar만들기
Maven - jar 파일에 dependency 포함시키기

![[Maven] 빌드 JAR 파일 자동 배포 (ANT SCP)](https://tech.sangron.com/wp-content/uploads/sites/2/2014/01/java_wallpaper-768x480.jpg)