maven 프로젝트 에서 jar 가방 살 빼 는 다섯 가지 방법
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 가방 의 살 을 빼 는 것 에 관 한 자 료 는 우리 의 다른 관련 글 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Windows에서 CodeArtifact(Maven)용 토큰을 자동으로 생성하는 방법CodeArtifact를 사용한 적이 있거나 사용할 계획이라면 매일 모든 Maven 프로젝트에서 수동으로 토큰(CODEARTIFACT_AUTH_TOKEN)을 생성해야 합니다. 이는 어려울 수 있으며 개발 속도를 늦출...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.