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 파일로 배포를 간소화하세요.
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 파일로 배포를 간소화하세요.