某些开源许可证要求为每个依赖项分发原始代码。我需要将提取的源提供给我的maven程序集插件。
如何递归获取所使用的每个依赖项的所有源JAR?
dependency:sources
只会将源依赖项下载到本地Maven仓库,而不会下载到我需要定义的自定义目录。
答案 0 :(得分:0)
找到解决方案:
<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}
中的所有资源,然后将jar重命名为zip文件(这使得“普通”用户可以在Windows资源管理器中查看其内容。
或者,您也可以使用unzip
ANT任务直接解压缩罐子。