예! 할 수있어! :-)
음영에는 구현 문제가 있습니다. pom (jar 또는 web이 아님) 프로젝트에서 실행되는시기는 알지 못합니다. Pom 프로젝트는 바이너리 아티팩트를 생성하지 않으며 음영은 병합, 이동 등의 파일을 찾지 못하고 NPE를 던집니다.
이 문제를 해결하려면 aggegate-Pom 프로젝트에서 상위 POM을 만드십시오. 그 안에 어떤 프로파일 (. 예를 들어 alwaysActiveProfiles)로 구성 그늘 정의 및 구성을 넣고 설치/명령을 사용하여 배포 :
MVN이 명령이 음영을 설치합니다 -P -alwaysActiveProfiles
배포 부모를 실행하지 않고 shade plugin pom (-alwaysActiveProfiles 옵션 supress shade plugin 실행)을 실행하면 종속 프로젝트가 작동합니다. 귀하의 음영 부모 치어는 수 다음과 같습니다
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>xxxxxxxx</groupId>
<artifactId>web-pom</artifactId>
<name>web-pom</name>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
...
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
<dependencies>
...
</dependencies>
<profiles>
<profile>
<id>alwaysActiveProfiles</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
그렇지 않으면 그늘이 당신의 의존성 그늘 치어 프로젝트에서 실행되지 않습니다, 당신의 setting.xml은 기본적으로 활성화 alwaysActiveProfiles이 있어야합니다 것을 기억하십시오.
가능성있는 해결 방법을 해결되었다 : 개별 모듈 항아리에 대한 종속성 받는다는 프로젝트를 만들고이 프로젝트에 쉐이더 플러그인을 사용 – Manoj
그럴 가능성은 희박합니다. –