maven 단일 프로젝트에서 2개 이상 jar 파일 뽑기

owljoa·2019년 7월 30일
0

daily-notes

목록 보기
9/11

Problem

  • 누군가가.. 구현한 메이븐 프로젝트(java기반)가 내부적으로 main 클래스를 여러개 가지고 있고 모두 따로 빌드해야하는 경우... (그 누군가..는 이클립스에서 각 main 클래스 우클릭 export - runnable jar로 뽑아낸 jar 파일을 나에게 준다..) 그런데 나는 이 과정을 자동화해야한다.. (메인 시스템 빌드하는 젠킨스 빌드과정에 포함시키기 위함)

Solution

  • "maven build multiple jar" 를 키워드로 검색한 결과 maven-assembly-plugin을 사용한 방법을 찾음..
  • 아래와 같이 pom.xml에 추가하고 mvn package 명령 실행
<build>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <executions>

        <execution>
          <id>make-assembly1</id>
          <phase>package</phase>
          <goals>
            <goal>single</goal>
          </goals>
          <configuration>
            <archive>
              <manifest>
                <mainClass>fully.qualified.ClassName1</mainClass>
              </manifest>
            </archive>
            <descriptorRefs>
              <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
            <finalName>name1</finalName>
            <appendAssemblyId>false</appendAssemblyId>
          </configuration>
        </execution>

        <execution>
          <id>make-assembly2</id>
          <phase>package</phase>
          <goals>
            <goal>single</goal>
          </goals>
          <configuration>
            <archive>
              <manifest>
                <mainClass>fully.qualified.ClassName2</mainClass>
              </manifest>
            </archive>
            <descriptorRefs>
              <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
            <finalName>name2</finalName>
            <appendAssemblyId>false</appendAssemblyId>
          </configuration>
        </execution>

      </executions>
    </plugin>
  </plugins>
</build>

참고

Apache 공식 maven-assembly-plugin usage
Github Gist - Creating two different executable JARs with dependencies from the same Maven project

profile
좋아하다

0개의 댓글