maven-shade-plugin - 클래스 org.apache.maven에서 'resource'를 찾을 수 없습니다.플러그인그늘진 곳매니페스트 리소스 변환기
Apache Maven 설명서 https://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html 에서 메이븐 셰이드 플러그인의 구성을 직접 복사했습니다.
현재 설정은 다음과 같습니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>com.my.app.MainClass</Main-Class>
<X-Compile-Source-JDK>1.8</X-Compile-Source-JDK>
<X-Compile-Target-JDK>1.8</X-Compile-Target-JDK>
</manifestEntries>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer">
<resource>.properties</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.tooling</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.factories</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
그리고 다음과 같은 오류가 발생합니다.
[ERROR] 목표 org.apache.maven을 실행하지 못했습니다.플러그인:maven-shade-plugin:3.1.0:프로젝트 cpms-batch의 음영(기본값):mojo org.apache.maven의 구성을 구문 분석할 수 없습니다.플러그인:maven-shade-plugin:3.1.0:매개 변수 리소스에 대한 음영: 클래스 org.apache.maven에서 'resource'를 찾을 수 없습니다.플러그인그늘진 곳ManifestResourceTransformer -> [도움말 1] org.apache.maven.lifecycle.라이프사이클실행예외:목표 org.apache.maven을 실행하지 못했습니다.플러그인:maven-shade-plugin:3.1.0:프로젝트 cpms-batch의 음영(기본값):mojo org.apache.maven의 구성을 구문 분석할 수 없습니다.플러그인:maven-shade-plugin:3.1.0:매개 변수 리소스에 대한 음영: 클래스 org.apache.maven에서 'resource'를 찾을 수 없습니다.플러그인그늘진 곳org.apache.maven.lifecycle의 매니페스트 리소스 변환기입니다.내부의.Mojo Executer.org.apache.maven.lifecycle에서 실행(MojoExecutor.java:212)합니다.내부의.Mojo Executer.org.apache.maven.lifecycle에서 실행(MojoExecutor.java:153)합니다.내부의.Mojo Executer.org.apache.maven.lifecycle에서 실행(MojoExecutor.java:145)합니다.내부의.라이프사이클 모듈 작성기.org.apache.maven.lifecycle에 있는 buildProject(LifecycleModuleBuilder.java:116).내부의.라이프사이클 모듈 작성기.org.apache.maven.lifecycle에 있는 buildProject(LifecycleModuleBuilder.java:80).내부의.빌더.싱글 스레드.단일 스레드 작성기.org.apache.maven.lifecycle에서 빌드(SingleThreadBuilder.java:51).내부의.라이프사이클 시작.org.apache.maven에서 실행(LifecycleStarter.java:128)합니다.org.apache.maven의 기본 Maven.doExecute(기본 Maven.java:307).org.apache.maven의 기본 Maven.doExecute(기본 Maven.java:193).org.apache.maven.cli의 기본 Maven.execute(기본 Maven.java:106).org.apache.maven.cli에 있는 MavenCli.execute(MavenCli.java:863).org.apache.maven.cli에 있는 MavenCli.doMain(MavenCli.java:288).태양에 반사되는 메이븐 클리.메인(Maven Cli.java:199).네이티브 메서드 액세스 또는 임플.sun.reflect에서 0(Native Method)을 호출합니다.네이티브 메서드 액세스 또는 임플.sun.reflect에서 호출합니다(NativeMethodAccessorImppl.java:62).메서드 액세스 또는 임플을 위임합니다.java.lang.reflect에서 (MethodAccessorImppl.java:43)을 호출합니다.방법.org.codehaus.plexus.classworlds.launcher에서 (Method.java:498)을 호출합니다.org.codehaus.plexus.classworlds.launch의 Launch.launchEnhanced(Launcher.java:289).org.codehaus.plexus.classworlds.launcher에 있는 Launcher.launch(Launcher.java:229).org.codehaus.plexus.classworlds.launcher에 있는 Launcher.mainWithExitCode(Launcher.java:415).Launcher.main(Launcher.java:356) 원인: org.apache.maven.플러그인플러그인 구성예외:mojo org.apache.maven의 구성을 구문 분석할 수 없습니다.플러그인:maven-shade-plugin:3.1.0:매개 변수 리소스에 대한 음영: 클래스 org.apache.maven에서 'resource'를 찾을 수 없습니다.플러그인그늘진 곳org.apache.maven에 있는 매니페스트 리소스 변환기입니다.플러그인내부의.org.apache.maven에 있는 기본 MavenPluginManager.pumulatePluginFields(기본 MavenPluginManager.java:662)입니다.플러그인내부의.org.apache.maven에 있는 기본 MavenPluginManager.getConfiguredMojo(기본 MavenPluginManager.java:594).플러그인기본 빌드 플러그인 관리자입니다.org.apache.maven.lifecycle에서 Mojo(DefaultBuildPluginManager.java:121)를 실행합니다.내부의.Mojo Executer.execute(MojoExecutor.java:207) ... 20개 이상의 원인: org.codehaus.plexus.component.configurator.구성 요소 구성예외: org.apache.maven 클래스에서 'resource'를 찾을 수 없습니다.플러그인그늘진 곳org.eclipse.sisu.plexus에 있는 매니페스트 리소스 변환기입니다.org.codehaus.plexus.component.configurator.converters.composite에 CompositeBeanHelper.set 속성(CompositeBeanHelper.java:252).org.codehaus.plexus.component.configurator.configurator.converters.composite에 있는 ObjectWithFieldsConverter.processConfiguration(ObjectWithFieldsConverter.java:101)입니다.org.codehaus.plexus.component.configurator.configurator.converter.composite의 구성에서 개체(개체:FieldsConverter.java:57)를 사용합니다.org.codehaus.plexus.component.configurator.configurator.converters.composite의 하위 항목(AbstractCollectionConverter.java:54)에서 AbstractCollectionConverter.fromChildren.org.eclipse.sisu.pllexus의 구성(ArrayConverter.java:52)에서 ArrayConverter.fromConverter.org.eclipse.sisu.pllexus에서 복합 BeanHelper.convert 속성(복합 BeanHelper.java:273).org.codehaus.plexus.component.configurator.converter.composite에 CompositeBeanHelper.set 속성(CompositeBeanHelper.java:210).org.codehaus.plexus.component.configurator에 있는 ObjectWithFieldsConverter.processConfiguration(ObjectWithFieldsConverter.java:101)입니다.org.apache.maven에 있는 BasicComponentConfigurator.configureComponent(BasicComponentConfigurator.java:34).플러그인내부의.기본 MavenPluginManager.pumulatePluginFields(기본 MavenPluginManager.java:632) ... 23개 이상 [오류]
나는 그 오류에 대한 여러 질문들을 보았지만 답이 없었습니다: 매개 변수 리소스에 대한 음영: 클래스 org.apache.maven에서 '리소스'를 찾을 수 없습니다.플러그인그늘진 곳매니페스트 리소스 변환기
클래스 org.apache.maven에서 'resource'를 찾을 수 없습니다.플러그인그늘진 곳매니페스트 리소스 변환기
해결할 수 있거나 이유를 찾은 사람이 있습니까?
이 게시물은 제 문제를 해결했습니다. https://github.com/spring-projects/spring-boot/issues/384
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer
implementation="org.springframework.boot.maven.PropertiesMergingResourceTransformer">
<resource>META-INF/spring.factories</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>${start-class}</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Spring Boot에는 자체 메이븐 셰이드 플러그인 구성이 있습니다.이 속성을 pom.xml에 추가합니다.
<properties>
<start-class>com.lionmint.core.test.integration.apns.mock.MockAPNSServer</start-class>
</properties>
바보처럼 들리겠지만 음영 플러그인 구성에 ID와 단계를 추가해야 합니다(이유는 모르겠지만 작동합니다).
<executions>
<execution>
<id>shade-jar-with-dependencies</id>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>com.my.app.MainClass</Main-Class>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
언급URL : https://stackoverflow.com/questions/49215416/maven-shade-plugin-cannot-find-resource-in-class-org-apache-maven-plugins-sh
'programing' 카테고리의 다른 글
| IntelliJ 2021.2에서 Spring Boot Live Dev Tools를 사용하여 수정 후 클래스를 재구성하고 서버에 변경 사항을 배포하는 방법은 무엇입니까? (0) | 2023.07.21 |
|---|---|
| Oracle.DataAccess.클라이언트 종속성 (0) | 2023.07.21 |
| Oracle SQL에서 날짜별로 정렬된 상위 1개를 선택하는 방법은 무엇입니까? (0) | 2023.07.21 |
| 스프링 부팅으로 자리 표시자 응용 프로그램을 확인할 수 없습니다.yml (0) | 2023.07.21 |
| frozen=True일 때 __post_init__에서 데이터 클래스 필드의 값을 설정하는 방법은 무엇입니까? (0) | 2023.07.21 |