当使用源代码签入依赖 jar 时,使用 Maven 是否仍然有意义?

2023-12-01

我们将所有源代码的依赖第三方 JAR 与我们的源代码一起检查到源代码管理中。需要时,我们手动下载第三方 JAR 的更新,并将那些处于源代码控制中的 JAR 替换为较新的版本。我们还没有感觉到需要使用 Maven,因为这个过程对我们来说似乎足够简单。但是,如果不使用 Maven,我们是否会错过一些很有价值的东西?或者我们的场景不保证使用 Maven?


“JAR 变化不大”,我一直听到这样的说法......

在项目开始时,在 SCM 中存储 jar 很简单。随着时间的推移,罐子的数量变得越来越大......等待 2 或 3 年,没有人记得这些罐子来自哪里,它们的许可条款是什么以及最常见的版本是什么(在分析安全漏洞时了解这一点很重要) ……

我最近读过的关于存储库管理器案例的最好的文章是:

  • http://www.sonatype.com/people/2012/07/wait-you-dont-have-a-repository-manager/

有点不敬,但确实对人们一直遇到的技术惯性提出了一个有效的观点。

将项目团队从 ANT 切换到 Maven 可能会很可怕......Maven 的工作方式完全不同,因此我发现它最好与新项目或富有冒险精神的项目团队一起部署。对于老派 ANT 用户,我建议使用阿帕奇常春藤插入。 Ivy 允许此类团队将其依赖项的管理外包,但保留他们熟悉的构建技术。

最终,使用 Maven 的最大好处不是依赖管理。这是标准化的构建过程。我见过几次创建“标准”ANT 构建过程的失败尝试。问题是,每个构建工程师对于标准应该是什么都有自己的看法……Maven 强制用户编写构建插件的方法一开始可能显得有限制性,但就像 iPhone 最终开发人员发现“有一个 Maven 插件可以解决这个问题”: -)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当使用源代码签入依赖 jar 时,使用 Maven 是否仍然有意义? 的相关文章

随机推荐

  • 使用 Facebook API PHP 在某人的墙上发帖

    是否可以编写一个在某人的墙上发布消息的应用程序 并且如果该用户尚未接受此时提示的许可 这是我的代码 attachment array access token gt access token message gt message name
  • C# 文件处理 - 创建文件并打开

    这就是我在文件上创建和写入的内容 Create Directory path Create Name file name private void Create File string Create Directory string Cre
  • 调用always_inline '__m256d _mm256_broadcast_sd(const double*)' 时内联失败

    我正在尝试运行由我的朋友创建的 Visual Studio cpp 项目 我正在尝试在没有 VS 的情况下运行该文件 但我收到了错误列表 全部采用相同的格式 inlining failed in call to always inline
  • C# json.net 子对象的自定义序列化

    我正在使用 JSON NET 将类序列化为 JSON 该类包含一个由项目列表组成的属性 我想以自定义方式序列化项目本身 通过使用自定义的 ContractResolver 动态地仅包含某些属性 所以基本上我想用 DefaultContrac
  • 在 php 中使用 fopen() 创建文件时的默认权限是什么?

    如果调用时文件不存在 fopen
  • 彩色动画内容演示器

    我无法在 ContentPresenter NormalTextDay 中创建动画或自定义颜色 此错误出现在我的 XAML 中 System Windows Media Animation ColorAnimation 动画对象无法用于对属
  • 需要在 Apache 上允许编码斜杠

    我目前正在尝试将 URL 放入 URL 中 例如 http example com url http 3A 2F 2Fwww url2 com 我知道我必须对 URL 进行编码 我已经这样做了 但现在我得到了404从服务器而不是我的应用程序
  • 对 JTable 进行排序会导致 NullPointerException

    我有一个 JTable 当单击相应的按钮时 它开始填充在后台进行的文件树遍历的结果 这很好用 然后我决定对表格进行排序 经过一番阅读后 我创建了一个 TableRowSorter 并设置表来使用它 它似乎有效 但经过仔细检查 我发现一些文件
  • Bing 地图 API 与 Android 应用程序的集成程度如何?

    首先我想问一下 你能整合吗 Bing Maps在 Android 应用程序中 其次 如果可以的话有什么好处Bing已经结束Google Maps API反之亦然 Updates This Android SDK v1 5现已弃用 看到这个链
  • PreparedStatement 如何避免或防止 SQL 注入?

    我知道PreparedStatements 可以避免 防止SQL 注入 它是如何做到的 使用PreparedStatements 构造的最终表单查询是字符串还是其他形式 考虑做同一件事的两种方法 PreparedStatement stmt
  • Windows 批处理文件中的传递、转义和识别特殊字符

    我编写了一个脚本 它会遍历输入字符串的每个字符 并根据我需要执行不同操作的字符 只要我的输入不包含任何空格或双引号字符 这种方法就可以很好地工作 我知道我必须转义特殊字符 但由于某种原因 我似乎对空格和双引号做错了 如果我使用参数 ab c
  • 打印图像的实际尺寸

    嗨 朋友们 我想打印我生成的图片 我使用以下代码 Printer BeginDoc Printer Canvas Draw 0 0 img1 Picture Bitmap Printer EndDoc 它可以工作 但它打印的图像非常小 我如
  • 通过序数索引访问红黑树

    我有一棵红黑树 二叉树 所有叶子都在2层以内 我可以浏览节点 向左 向右或父节点 我知道节点的全部数量 我必须找到树中第 N 个最小的元素 有没有比 O n 更快的方法 有什么通过索引优化访问的想法吗 在每个节点 X 中 您应该存储以 X
  • 如何确定文件对于 *nix 上的进程是否是只读的? [复制]

    这个问题在这里已经有答案了 使用 stat 函数 我可以获得以下内容的读 写权限 owner user other 但这不是我想要的 我想知道我的进程 即我正在编写的应用程序 的文件的读 写权限 仅当我知道我的进程是否作为文件的所有者 用户
  • 从 BigQuery 将数据导出到 GCS - 拆分文件大小控制

    我目前正在将数据从 Bigquery 导出到 GCS 存储桶 我使用以下查询以编程方式执行此操作 query request bigquery service jobs DATASET NAME PROJECT ID DATASET ID
  • TYPO3:存储库->findAll() 不起作用

    我正在构建一个带有后端模块的扩展 当我打电话给findAll 方法它返回一个 QueryResult 对象 我尝试用以下方法检索对象查找按Uid 并且它确实有效 我在打字稿中设置了存储pid plugin tx hwforms persis
  • VS2010(CUDA)中导出DLL的问题

    我在构建 DLL 解决方案时遇到了麻烦 我正在制作用于 LabVIEW 2010 的 DLL 以便具有 CUDA 功能 但是 我想要导出的每一个函数都收到链接器错误 LNK2019 include LVCUDA h include C Pr
  • Python 与 MS SQL - 截断输出

    我尝试从 Linux 盒子使用 python 连接到 MSSQL DB Python 2 7 乌班图11 04 我收到的输出被截断为 500 个字符 请参阅下面的脚本和配置 怎么解决呢 我认为问题出在 ODBC 驱动程序中或附近 代码 py
  • 无法使用 RJB gem 将应用程序部署到 Heroku

    我已经设置了 JAVA HOME 变量 heroku config add JAVA HOME usr lib jvm java 6 openjdk 检查 heroku 配置是否显示此变量的值 然后推 git push heroku mas
  • 当使用源代码签入依赖 jar 时,使用 Maven 是否仍然有意义?

    我们将所有源代码的依赖第三方 JAR 与我们的源代码一起检查到源代码管理中 需要时 我们手动下载第三方 JAR 的更新 并将那些处于源代码控制中的 JAR 替换为较新的版本 我们还没有感觉到需要使用 Maven 因为这个过程对我们来说似乎足