我即将编写一个工具,我们的开发人员可以根据其maven坐标检查工件的来源。该工具应该能够为所有SNAPSHOT依赖项以递归方式检出源。
我的第一个问题是:我是否需要编写此工具?可以想象,这不是一个非常独特的用户场景,但我还没有找到适合实现这一目标的东西。我看过scm:checkout和scm:bootstrap,两者都需要关于连接url的知识,因为我只有一个artifactID。有没有其他方法,但要编写自定义工具,这样做?
如果没有,我的家用酿造工具会做以下几行:
我的第二个问题是:这听起来像是一个好方法吗?想到任何警告?
答案 0 :(得分:1)
对于您希望以这种方式结帐的每个项目,您可以添加包含scm插件的引导目标的插件配置的配置文件。插件配置与scm URL在同一个POM中,因此处理#2& 3;你不需要一个单独的bootstrap-pom。
要获取初始POM,可以从命令行使用dependency:get
:
mvn dependency:get -Dartifact=some.group:my.artifact:version:pom -Ddestination=someDirectory
在包含下载的POM的目录中,执行bootstrap:
mvn -Pbootstrap-profile-id scm:bootstrap
将检查顶级项目。
我不知道你怎么做这个递归。您可以使用dependency:copy-dependencies
请求传递依赖项并复制POM,然后在每个上运行引导过程。不确定这是怎么回事。
答案 1 :(得分:0)
user944849的解决方案对我不起作用,但这是一个有效的例子
mvn dependency:get -Dartifact=ar.com.hjg:pngj:2.1.0:pom -Ddest=pom.xml
mvn scm:bootstrap -Dgoals=validate
mv target/checkout ~/projects/pngj