라이브러리를 배포하려는데, 혹은 다른 곳에서 만든 라이브러리의 maven 기반 소스를 가지고 가져오려는데 이 라이브러리가 의존하는
것들까지 들고 오는게 쉽지 않다. 의존하는 라이브러리는 다 m2 저장소에 있지만 그것을 일일이 복사해 가져올 수도 없고 들고
오자니 그것도 귀찮고…
1. 생성한 라이브러리안에 의존하는 라이브러리 클래스도 한 번에 다 넣기. 파일 하나만 나와서 편하긴 한데, 덩치도 크고 소스보기 하려고 소스 폴더나 파일 연결해보면 무지 불편하다는 것을 알게 된다.
어쨌든 방법을 설명하면
1) pom.xml 파일에 빌드가 가능하게 maven-assembly-plugin관련 설정에 depenedency를 포함하게 추가.
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
2) mvn assembly:assembly 로 jar생성
이러면 library-version-jar-with-dependencies.jar 라는 이름으로 의존관계 클래스를 다 포함하는 jar가 생성된다.
2. 의존관계 라이브러리를 하나의 디렉토리에 자동으로 모으기
mvn dependency:copy-dependencies으로 명령 내리면 target/dependency 디렉토리에 의존하는 라이브러리 파일을 다 복사해 모아준다.
더 자세한 설명은 http://maven.apache.org/plugins/maven-dependency-plugin/ 참고하면 된다.