Я использую плагин "shade" Maven2 для создания монолитного JAR со всеми связанными Java-зависимостями.Соответствующий раздел в pom.xml
довольно прост:
<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>
<finalName>${project.artifactId}-${project.version}-SHADED</finalName>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.mypackage.MyClass</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
Однако результаты сборки странные.Кажется, что два плагина на самом деле создаются этим плагином Maven:
myartifact-1.0.0-SHADED.jar (zero bytes)
original-myartifact-1.0.0-SHADED.jar (10 MB)
Файл JAR с префиксом «оригинал» построен правильно и работает просто отлично.Полагаю, я мог бы просто переименовать его, чтобы удалить этот префикс, и продолжать свой веселый путь.
Однако мне очень любопытно, что здесь может происходить с плагином "тень".Похоже, «оригинальный» файл - это временная вещь типа рабочего пространства, предназначенная для переименования в конце процесса, и это окончательное переименование просто не завершается.Там нет очевидного объяснения этому (хотя разрешения файловой системы и т. Д.).Кто-нибудь когда-нибудь видел это раньше?