gpt4 book ai didi

java - 下载maven项目依赖,方便后续离线构建

转载 作者:搜寻专家 更新时间:2023-10-31 19:55:35 25 4
gpt4 key购买 nike

我已经以开箱即用的常用方式使用 maven 一段时间了,所以我明白它是什么,但我是 maven 设置的新手。

我需要组织这样的工作流程:

  1. 开发人员编写 java 代码,使用来自互联网的一些依赖项。
  2. 开发人员提交他的工作。
  3. TeamCity 可以自动构建他的作品。无需任何手动工作,也无需互联网。

我知道怎么做了:

  1. 开发人员使用 maven。 “公共(public)”目录充当某些 Java 项目的存储库。
  2. 工作完成后,开发者将自己的项目和公共(public)目录提交到svn中。
  3. TeamCity 从 svn 更新项目和公共(public)目录并运行“mvn package”。任何需要的东西都来自公共(public)目录。无需担心互联网连接和启动关系或其他 repo 服务。

我的问题是:如何使用文件系统上的简单目录作为某些项目的代理存储库?请告诉我如何实现这个想法,或者给我另一个想法来实现这样的工作流程。

我可以只提交本地仓库,但有一些限制:

  1. 本地 repo zip Artifact 。如果我对它做一点改动——整个缓存文件都必须上传到 svn 或从 svn 下载。这需要很长时间。
  2. 所有项目的本地 repo 存储 Artifact 。我只希望某些项目使用此存储库,因为开发人员不想检查更改并过滤未使用的依赖项。

我测试本地目录来部署项目,通过在 repo url 中写入“file://testRespoDir”很简单,但我不明白如何让这个目录代理项目的所有远程 Artifact (项目不能使用本地 repo 和仅使用公共(public)目录。

最佳答案

我找到了简单而完美的解决方案:POM 包括 2 个存储库:

<repositories>
<repository>
<id>commonDep</id>
<name>common dependency</name>
<url>file://../common/repository</url>
</repository>
<!-- it used when collect dependencies before commit. If developer already download dependency, get it from local repo, save traffik and time -->
<repository>
<id>localPlugins</id>
<name>local plugins</name>
<url>file://${user.home}/.m2/repository</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>commonDep</id>
<name>common dependency</name>
<url>file://../common/repository</url>
</pluginRepository>
<!-- it used when collect dependencies before commit. If developer already download dependency, get it from local repo, save traffik and time -->
<pluginRepository>
<id>localPlugins</id>
<name>local plugins</name>
<url>file://${user.home}/.m2/repository</url>
</pluginRepository>
</pluginRepositories>

当开发人员打开项目时,他会按顺序使用本地、公共(public)和中央存储库。它节省了他的流量。当他完成工作时,他调用脚本:

mvn dependency:go-offline -Dmaven.repo.local=../common/repository

项目的所有当前依赖项都从他的默认本地存储库复制到公共(public)存储库。然后开发者提交common。

当我们在 teamcity 上运行构建时,我们检查项目和公共(public)并运行它。没有互联网连接,但所有依赖项都存在于公共(public)存储库中。

关于java - 下载maven项目依赖,方便后续离线构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20559635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com