maven 프로젝트 에서 jar 가방 살 빼 는 다섯 가지 방법

자바 프로젝트 에 서 는 maven 도 구 를 자주 사용 하여 공정 관 리 를 하지만 자주 발생 하 는 문 제 는 생 성 된 jar 패키지 가 점점 커지 고 컴 파일 이 느 려 지 는 것 입 니 다.불필요 한 의존 을 어떻게 효과적으로 제거 하고 jar 가방 에 살 을 빼 는 지 필수 기능 입 니 다.다음은 Maven 프로젝트 에서 jar 가방 다이어트 5 대 방법 을 소개 합 니 다.
1.환경 에 포 함 된 의존 패키지 의 scope 를 provided 로 설정 합 니 다.
pom 에서 의존 하 는 일부 패 키 지 는 프로그램 실행 환경 에 포함 되 어 있 을 수 있 습 니 다.이 때 패키지 에 의존 하 는 scope 를 provide 로 설정 해 야 합 니 다.protobuf 패키지 가 환경 에 포함 되 어 있 으 면 다음 과 같이 설정 해 야 합 니 다.

<dependency>
  <groupId>com.google.protobuf</groupId>
  <artifactId>protobuf-java</artifactId>
  <version>${protobuf.version}</version>
  <scope>provided</scope>
</dependency>
2.미사 용 의존 삭제
pom 파일 설정 에 가입 할 수 있 는 일부 의존 패 키 지 는 실제로 사용 되 지 않 았 습 니 다.사용 되 지 않 은 의존 패 키 지 를 찾 는 효과 적 인 방법 이 있 습 니까?정 답 은Apache Maven Dependency Plugin.
Apache Maven Dependency Plugin 플러그 인 을 설치 하고 mvn dependency:analyze 명령 을 실행 하여 프로젝트 의 의존 관 계 를 분석 하고 어떤 의존 이:사용 하고 설명 하 며 사용 하고 설명 하지 않 은 것 과 사용 하지 않 은 것,설명 하 는 것 인지 확인 합 니 다.사용 되 지 않 고 성명 한 의존 도 를 pom 파일 에서 제거 하면 됩 니 다.
Spring Boot 를 사용한다 면 이 플러그 인 을 직접 추가 할 수 있 습 니 다.

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-dependency-plugin</artifactId>
    </plugin>
  </plugins>
</build>
3.중복 의존 제거
pom 파일 에서 일부 의존 은<dependencies/>또는<dependencyManagement/>에서 중복 설정 되 거나 부자 프로젝트 설정 에서 같은 의존 패키지 가 중복 설정 되 었 을 수 있 습 니 다.Apache Maven Dependency Plugin플러그 인 을 통 해 실행mvn dependency:analyze-duplicate명령 을 통 해 항목 의 중복 의존 을 검사 한 다음 중복 의존 항목 을 삭제 하면 됩 니 다.
4.의존 충돌 해결
프로젝트 의 서로 다른 의존 패 키 지 는 다른 패 키 지 를 동시에 의존 할 수 있 습 니 다.이 패 키 지 는 버 전이 일치 하지 않 을 수 있 습 니 다.이 로 인해 프로그램 이 정상적으로 작 동 하지 못 하거나 실행 과정 에서 이상 한 문제 가 발생 할 수 있 습 니 다.
그러면 어떻게 모든 의존 충돌 항목 을 편리 하 게 찾 아 해결 합 니까?intellij 에 플러그 인 을 설치 하면 충돌 하 는 가방 을 신속하게 찾 을 수 있 습 니 다.
maven helper 를 설치 한 후 pom 파일 을 열 고 Text 모드 에서 Dependency Analyzer 모드 로 전환 합 니 다.Conflicts 단 추 를 선택 하면 충돌 의존 패키지 가 빨간색 으로 표시 되 는 것 을 뚜렷하게 볼 수 있 습 니 다.
빨간색 패 키 지 를 선택 하고 오른쪽 단 추 를 누 르 고 Exclue 를 선택 하면 됩 니 다.실제 효 과 는 pom 파일 에 대응 하 는 dependency 에서 패 키 지 를 제외 합 니 다.

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-entitymanager</artifactId>
  <version>${hibernate.manager}</version>
  <exclusions>
    <exclusion>
      <artifactId>jboss-logging</artifactId>
      <groupId>org.jboss.logging</groupId>
    </exclusion>
  </exclusions>
</dependency>
일부 장면 에서 exclusion 이 충돌 하 는 서로 다른 버 전의 의존 패 키 지 는 프로그램 이 실행 되 지 못 하 게 할 수 있 습 니 다.가능 한 이 유 는 패키지 가 장 착 된 다른 버 전에 서 정상적으로 실행 되 지 못 하기 때 문 입 니 다.이 때 는 의존 하 는 패키지 가 다른 의존 패키지 와 호 환 될 수 있 도록 새로운 버 전의 의존 패 키 지 를 찾 아야 할 수도 있 습 니 다.
5.지정 한 파일 제거
위의 몇 가지 절 차 를 밟 고도 jar 가방 의 효과 적 인 다이어트 목 표를 달성 하지 못 하면 최종 대 살 기 를 사용 할 수 밖 에 없습니다.필요 하지 않 은 지정 파일 이나 폴 더 를 최종 jar 가방 에서 제거 할 수 있 습 니 다.
필요 하지 않 은 파일 이 jar 패키지 에 걸 린 이 유 는 프로젝트 문서 등 코드 가 아 닌 프로젝트 파일 이 포함 되 어 있 을 수 있 습 니 다.다른 한편,당신 이 의존 하 는 jar 가방 에는 필요 없 는 불필요 한 파일 이 포함 되 어 있 을 수 있 습 니 다.maven-shade-plugin플러그 인 을 사용 하면 특정한 조건 에 맞 는 파일 을 jar 패키지 에서 제거 할 수 있 습 니 다.다음 과 같이 exclude 항목 을 설정 하면 최종 jar 패키지 에서 특정 조건 에 맞 는 파일 이나 폴 더 를 제거 할 수 있 습 니 다(설정 파일 일 수도 있 고 코드 파일 일 수도 있 습 니 다).

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-shade-plugin</artifactId>
  <version>2.4.3</version>
  <executions>
    <execution>
      <id>uber-jar</id>
      <phase>package</phase>
      <goals>
        <goal>shade</goal>
      </goals>
      <configuration>
        <finalName>${project.artifactId}-${project.version}-jar-with-dependencies</finalName>
        <filters>
          <filter>
            <artifact>*:* </artifact>
            <excludes>
              <exclude>LICENSE</exclude>
              <exclude>META-INF/*.SF</exclude>
              <exclude>META-INF/*.DSA</exclude>
              <exclude>META-INF/*.RSA</exclude>
            </excludes>
          </filter>
        </filters>
      </configuration>
    </execution>
  </executions>
</plugin>
이상 은 Maven 프로젝트 에서 jar 가방 의 살 을 빼 는 다섯 가지 방법 에 대한 상세 한 내용 입 니 다.Maven 프로젝트 에서 jar 가방 의 살 을 빼 는 것 에 관 한 자 료 는 우리 의 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기