0

抱歉,如果这是一个简单的解决方法,我是 Java 和 Maven 的新手,并且正在努力让它工作。

我正在尝试在我的工作机器上实现ADAL4J 示例。不幸的是,由于各种安全原因,我的工作机器无法访问 Maven 存储库,并且无法暂时连接到下载和所需的包。

我已经在我的个人机器上启动并运行了示例,通过 Maven 生成了一个依赖项列表并手动将它们下载到我的工作机器(jar 文件)上,但这就是我卡住的地方。

如何配置 Maven 构建过程以使用本地 jar 文件,而不是尝试从 Maven 远程 repo 下载它们?

编辑:忘了提一下,任何解决方案都将与 VSTS 一起部署,它也无法访问 Maven 存储库,因此任何引用独立于 Maven 存储库的依赖项的方式都必须能够与构建过程捆绑在一起(它当前生成一个 WAR 文件)并部署到远程 Tomcat 服务器。

4

3 回答 3

1

只需手动将 jar 安装到本地存储库:

https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html

安装 3rd 方 JAR 的指南

虽然很少,但有时您需要将 3rd 方 JAR 放入本地存储库以用于构建,因为它们不存在于任何公共存储库(如 Maven Central)中。JAR 必须放置在正确位置的本地存储库中,以便 Apache Maven 正确拾取它。为了使这更容易,更不容易出错,我们在 maven-install-plugin 中提供了一个目标,它应该使这相对容易。要在本地存储库中安装 JAR,请使用以下命令:

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
    -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

如果还有 pom 文件,您可以使用以下命令安装它:

mvn install:install-file -Dfile=<path-to-file> -DpomFile=<path-to-pomfile>

使用 2.5 版的 maven-install-plugin 会变得更好。如果 JAR 是由 Apache Maven 构建的,它将在 META-INF 目录的子文件夹中包含一个 pom.xml,默认情况下会读取该文件。在这种情况下,您需要做的就是:

mvn install:install-file -Dfile=<path-to-file>
于 2017-06-22T11:04:48.313 回答
1

您可以对手动下载的 jar 使用此命令:

mvn deploy:deploy-file -Durl=file://yourPath/.m2/repository -DrepositoryId=yourRepositoryId -Dfile=pathJar/yourJar.jar -Dversion=yourVersion -DgroupId=yourGroupId -DartifactId=yourArtifactId
于 2017-06-22T11:06:27.533 回答
1

你可以试试这个:

  • mvn clean package在可以访问 Internet 的机器上运行您的项目。这将产生一个副作用,即 Maven 将下载您的依赖项并将它们放置在您的本地存储库中(位于 Windows 用户文件夹的内部.m2文件夹中)。
  • 取出整个.m2文件夹并将其放在无法访问 Internet 的机器上。

Maven 总是首先检查本地 repo 是否有任何依赖关系,所以你应该像这样没问题。另外,就像其他答案所建议的那样,它将为您省去必须一一安装依赖项的麻烦。

编辑:我想补充一点,如果您有很多依赖项,此方法很有用。如果你只有几个——比如 5 个——(虽然不太可能),你最好在本地存储库中install手动 ing 它们(install是将工件放置在本地存储库中的过程),

于 2017-06-22T11:07:30.133 回答