はい !あなたはできる !:-)
Shadeには実装上の問題があります。pom(jarまたはwebではない)プロジェクトで実行されているのはいつかわかりません。Pomプロジェクトはバイナリアーティファクトを生成しないため、shadeはマージ、移動などするファイルを検出せず、NPEをスローします。
この問題を解決するには、aggegate-Pomプロジェクトから親POMを作成します。その中に、シェードの定義と構成の構成をいくつかのプロファイル(alwaysActiveProfilesなど)に配置し、次のコマンドを使用してインストール/デプロイします。
mvn deploy -P -alwaysActiveProfiles
このコマンドは、shadeプラグインpomを実行せずにこのシェーディングされた親をインストールし(-alwaysActiveProfilesオプションはシェードプラグインの実行を抑制します)、その後、Mavenに依存するプロジェクトが機能します。影付きの親pomは次のようになります。
<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>
settings.xmlではデフォルトでalwaysActiveProfilesが有効になっている必要があることに注意してください。有効にしないと、依存関係のshade-pomプロジェクトでshadeが実行されません。