我对Maven真的很陌生,我在网上寻找解决方案的最后4个小时读到了它,但我无法弄清楚如何解决这个问题:
我需要下载这个由许多.jar组成的库 https://build.shibboleth.net/nexus/content/repositories/releases/org/opensaml/
在所有opensaml- * dirs 中,所有内容都在目录3.1.1中这个项目基于Maven并且有一个父母pom https://build.shibboleth.net/nexus/content/repositories/releases/org/opensaml/opensaml-parent/3.1.1/opensaml-parent-3.1.1.pom 并且每个子模块在所有3.1.1目录中都有另一个pom文件,具有dependacies。 好的问题很简单,我想在3.1版本的父pom中列出的每个模块的每个目录下载每个jar(如果你查看链接,问题会变得更加容易)。
好吧,在maven中有一种方法可以下载所有指定版本和指向repo / pom /的链接以及任何和解析dependacies? (我认为maven就是这样的事情)
非常感谢。
答案 0 :(得分:0)
好的,OpenSaml 3.2.0现在正常运行。这有点棘手。 基本上你需要从svn repo下载所有模块,然后从 -parent目录构建所有模块。那么你需要告诉maven使用mvn依赖来下载alla dependacy:copy-dependencies(再次在-parent中)。然后从-opensaml - 以及target / dependacy复制所有罐子。然后会工作:)
对于感兴趣的人我分享一点点bash来帮助你收集所有这些罐子。只需在mvn依赖之后进入java-opensaml目录:copy-dependencies步骤,只需:
#!/bin/bash
for d in ./trunk/*/ ; do
#echo "$d"
k=$d'target/';
printf "Checking $k ...";
if [ -d "$k" ]; then
printf "EXIST\n";
find $k -iname "*SNAPSHOT.jar" -exec cp --remove-destination -v {} ./ \;
else
printf "fail\n";
fi
k=$d'target/dependency/';
printf "Checking $k ...";
if [ -d "$k" ]; then
printf "EXIST\n";
find $k -iname "*.jar" -exec cp --remove-destination -v {} ./ \;
else
printf "fail\n";
fi
printf "\n--\n";
done