Maven程序集插件附加依赖项源

时间:2016-02-26 09:12:54

标签: java maven

某些开源许可证要求为每个依赖项分发原始代码。我需要将提取的源提供给我的maven程序集插件。

如何递归获取所使用的每个依赖项的所有源JAR?

dependency:sources只会将源依赖项下载到本地Maven仓库,而不会下载到我需要定义的自定义目录。

1 个答案:

答案 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任务直接解压缩罐子。