私は、Mavenを使用してマルチモジュールプロジェクトを構築し、難読化しようとしています。 proguard-maven-pluginを使用してfat jarファイルを難読化し、appassemblerプラグインを使用して実行可能なビルド出力を作成できるように、シェード・プラグインを使用して自分のクラス・ファイル(すべてのモジュール)のすべてを含むfat jarファイルを作成します。 appassembler repo dirに他のモジュールの依存関係も表示される点を除いてすべて動作します。これは、難読化されたクラスがすでに影付きのjarファイルに存在するためです。shade、proguard、appassemblerのmavenプラグインの組み合わせ
他のモジュール依存関係を定義してから、シェードプラグインの依存関係を追加しようとしましたが、シェードプラグインがそれらを無視しているようです。
これはのpom.xmlの関連部分は次のとおりです。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<outputFile>${project.build.directory}/${project.build.finalName}-shaded.${project.packaging}</outputFile>
<artifactSet>
<includes>
<include>${project.groupId}:*</include>
</includes>
</artifactSet>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>module-a</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>module-b</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>2.0.13</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<injar>${project.build.finalName}-shaded.${project.packaging}</injar>
<outjar>${project.build.finalName}.${project.packaging}</outjar>
<proguardInclude>proguard.pro</proguardInclude>
<maxMemory>1024m</maxMemory>
<libs>
<lib>${java.home}/lib/rt.jar</lib>
<lib>${java.home}/lib/jce.jar</lib>
</libs>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>2.0.0</version>
<executions>
<execution>
<id>assemble</id>
<phase>package</phase>
<goals>
<goal>assemble</goal>
</goals>
<configuration>
<programs>
<program>
<mainClass>my.package.Application</mainClass>
</program>
</programs>
<useWildcardClassPath>true</useWildcardClassPath>
<repositoryLayout>flat</repositoryLayout>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
すべてのアイデアは歓迎されています。
のですか?どのようなコマンドを使用しましたか?あなたはmavenの出力を提供できますか? – Adonis
@Auttouf mvnクリーンインストール。ビルドは成功しましたが、影付きのjarにはモジュール-aとモジュール-bのクラスが含まれていません – raven