Решение найдено:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.9</version>
<executions>
<execution>
<id>get-dependency-sources</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${sources.directory}</outputDirectory>
<classifier>sources</classifier>
<prependGroupId>true</prependGroupId>
</configuration>
</execution>
</executions>
</plugin>
в сочетании с
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>unpack-sources</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<move todir="${sources.directory}">
<fileset dir="${sources.directory}">
<include name="**/*.jar"/>
</fileset>
<mapper type="glob" from="*.jar" to="*.zip"/>
</move>
</target>
</configuration>
</execution>
...
Первый собирает все ресурсы в пределах ${sources.directory}
, а затем переименовывает банки застегнуть файлов (что позволяет «нормальный» пользователю просматривать их содержимое в Windows Explorer. В качестве альтернативы вы также можете напрямую разархивировать банки с помощью задачи ANT .
Это не возможно. если вы зависите от собственной библиотеки, чей код не является общедоступным? – Tunaki
Конечно, это не сработает, если источники недоступны через maven. Но большинство из них. Как я уже говорил в своем посте, речь идет только о компонентах с открытым исходным кодом. – gorootde
Кстати, ['dependency: sources'] (https://maven.apache.org/plugins/maven-dependency-plugin/sources-mojo.html) разрешает источники для всех зависимостей вашего проекта (включая транзитивные). Поэтому я не уверен, почему вы говорите, что это не рекурсивно. – Tunaki