1. Maven으로 실행 가능한 JAR 파일을 만드는 방법
Maven은 프로젝트를 빌드하고 관리하는 강력한 도구로, 실행 가능한 JAR 파일을 생성할 때 유용합니다. 특히, 의존성(dependencies)을 포함한 단일 JAR 파일(Uber JAR)을 만들기 위해 Maven 플러그인을 활용할 수 있습니다.
2. Maven Assembly Plugin을 사용하여 JAR 생성
2.1 Maven Assembly Plugin 설정
pom.xml
파일에 아래와 같은 플러그인을 추가합니다.
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.example.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
2.2 JAR 생성 명령
아래 명령을 실행하여 의존성이 포함된 JAR 파일을 생성합니다.
mvn clean compile assembly:single
2.3 자동 빌드 단계에 추가
빌드 시 자동으로 JAR 파일을 생성하도록 설정하려면, 플러그인의 executions
섹션을 추가하세요.
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.example.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
이 설정은 mvn package
명령 실행 시 자동으로 JAR 파일을 생성합니다.
3. 생성된 JAR 파일 실행
생성된 실행 가능한 JAR 파일을 실행하려면 아래 명령을 사용하세요.
java -jar target/your-jar-name.jar
4. 주요 팁 및 유용한 설정
4.1 불필요한 이름 접미사 제거
-jar-with-dependencies
접미사를 제거하려면 다음을 추가하세요.
<appendAssemblyId>false</appendAssemblyId>
4.2 Main 클래스가 없는 경우
만약 Main 클래스가 없다면 mainClass
를 생략하면 됩니다. 이 경우, JAR 파일은 실행 파일이 아니라 라이브러리로 사용됩니다.
결론
Maven Assembly Plugin은 의존성을 포함한 실행 가능한 JAR 파일을 손쉽게 만들 수 있는 강력한 도구입니다. 위의 설정을 따라 프로젝트 빌드를 자동화하고 단일 JAR 파일로 배포를 간소화하세요.