Я использую плагин 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 с префиксом "оригинал" построен правильно и работает нормально. Полагаю, я мог бы просто переименовать его, чтобы убрать этот префикс, и продолжить свой веселый путь.
Однако Мне очень любопытно, что может здесь происходить с плагином «тени». Похоже, что «исходный» файл - это временное рабочее пространство, предназначенное для переименования в конце процесса, и это окончательное переименование просто не завершается. Однако для этого нет очевидного объяснения (например, разрешения файловой системы и т. Д.). Кто-нибудь когда-нибудь видел это раньше?