1)
컴파일을 하고 나면, 실행할 수 있는 jar가 생기는데. 단독으로 쓰기가 어렵기 때문에 classpath를 지정해줘야 하는 이슈가 생긴다.(허드슨 hpi 도 대표적인 케이스라 할 수 있겠다.)
이런 불편함이 존재해서, 관련 lib들을 하나의 jar로 묶을 수 있는 방법이 있다.
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<inherited>false</inherited>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</pluginManagement>
....
</build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<inherited>false</inherited>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</pluginManagement>
....
</build>
전체를 하나의 jar로 만들어보기
#] mvn assembly:assembly
aaa-1.0-jar-with-dependencies.jar 이런 파일이 target 디렉토리 밑에 생겼을 것이다.
zip 프로그램으로 보면, maven lib가 다 들어가 있음을 확인할 수 있다.
2)
사실 이런 방법보다는 아래와 같이 project 설정을 하고, target 디렉토리와 소스 repository와 같은 파일들을 모아줄 수 있게 한다.
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<inherited>false</inherited>
<configuration>
<descriptorRefs>
<descriptorRef>project</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</pluginManagement>
....
</build>
#] mvn assembly:assembly -DdescriptorId=jar-with-dependencies<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<inherited>false</inherited>
<configuration>
<descriptorRefs>
<descriptorRef>project</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</pluginManagement>
....
</build>
똑같은 효과를 누릴 수 있다.
3)
jar -jar 파일명.jar 하면 바로 실행할 수 있게 하려면, archive를 넣어주면 된다.
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<inherited>false</inherited>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<archive>
<manifest>
<mainClass>org.Test</mainClass>
</manifest>
</archive>
</plugin>
</plugins>
</pluginManagement>
....
</build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<inherited>false</inherited>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<archive>
<manifest>
<mainClass>org.Test</mainClass>
</manifest>
</archive>
</plugin>
</plugins>
</pluginManagement>
....
</build>
4)
descriptorRef 설정의 종류는 여러가지가 있다.
- bin
- src
- project
- jar-with-dependencies
'etc tools' 카테고리의 다른 글
[maven] type - pom (0) | 2011.05.27 |
---|---|
윈도우즈에서 사용할 수 있는 grep : findstr (0) | 2011.03.15 |
[Maven Deploy 툴 Nexus 활용] (0) | 2011.02.09 |
[Maven서버] Maven 서버에 Archetype 새로 추가하기 (0) | 2011.02.09 |
JUNIT4 Suite -> ClasspathSuite (0) | 2010.09.01 |