【问题标题】:Download remote multi-module project from maven从 maven 下载远程多模块项目
【发布时间】:2015-07-06 17:39:32
【问题描述】:

我真的是 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 文件。 好的,这个问题很简单,我想下载 3.1.1 版本的父 pom 中列出的每个模块的每个目录上的每个 jar(如果你查看链接,问题会变得更容易)。

好的,maven 中有一种方法可以下载所有内容,指定版本和指向 repo/pom/whatever 的链接并解决依赖关系? (我认为 maven 正是为了这样的事情)

非常感谢。

【问题讨论】:

  • 您好,您是否检查过此链接:wiki.shibboleth.net/confluence/display/DEV/…。这解释了如何连接到他们的 repo 并使用 maven 坐标安装 jar。
  • 您好,感谢您的回答。这个页面基本上描述了如何在 Maven 中部署为 dev 或如何构建包。它说“移动到那个目录和 balblabla”。好的,我没有所有 repo 的副本,我只想下载所有带有依赖关系的单个 jar。事实并非如此,对吧?或者我需要 wget 整个 maven 来“移动到那个目录?”

标签: java maven opensaml


【解决方案1】:

好的,OpenSaml 3.2.0 现在可以工作了。这有点棘手。 基本上你需要从 svn repo 下载所有模块,然后从 -parent 目录构建所有内容。那么你需要告诉 maven 使用 mvn dependency:copy-dependencies 为你下载 alla 依赖项(再次在 -parent 中)。然后从 -opensaml- 以及目标/依赖项复制所有 jar。那么就可以了:)

对于感兴趣的人,我分享我的小 bash 来帮助您收集所有这些罐子。只需在 mvn dependency:copy-dependencies 步骤之后进入 java-opensaml 目录,然后:

#!/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

【讨论】:

    猜你喜欢
    • 2018-02-06
    • 1970-01-01
    • 2020-10-30
    • 2021-02-09
    • 2011-01-04
    • 2017-10-20
    • 1970-01-01
    • 2014-09-14
    • 2016-06-12
    相关资源
    最近更新 更多