Я использую плагин Maven2 "shade" для создания монолитного 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>
Однако результаты сборки нечетны. Кажется, что TWO файлы фактически созданы этим плагином Maven:
myartifact-1.0.0-SHADED.jar (zero bytes)
original-myartifact-1.0.0-SHADED.jar (10 MB)
Файл JAR с префиксом "оригинал" правильно построен и отлично функционирует. Полагаю, я мог бы просто переименовать его, чтобы снять этот префикс, и по-прежнему весело.
Однако мне очень любопытно, что может происходить здесь с плагином "тени". Похоже, что "оригинальный" файл - это временное рабочее место, которое должно быть переименовано в конце процесса, и что окончательное переименование просто не завершено. Там нет очевидных объяснений, хотя (т.е. Разрешения файловой системы и т.д.). Кто-нибудь когда-либо видел это раньше?