当您的 ant 构建过程在版本控制上崩溃时该怎么办

2024-04-26

所以我有一个很好的 Java 项目,使用 Ant 构建到 /dist 文件夹。
整个项目处于版本控制之下,因此我只需通过 dist 文件夹路径上的“svn导出”即可部署最新版本。
但我的构建不断删除 dist 文件夹内的 .svn 文件夹及其所有依赖项,因为它在构建时会清除该文件夹,而不是仅仅覆盖。确切的罪魁祸首是 JarBundler,它是构建我的 mac.app 包的 Ant 任务 - 它在重新创建之前删除了整个包的文件夹。
这显然使我的 svn 崩溃,因为该文件夹的所有 .svn 文件夹现在都丢失了,所以它说它存在冲突。

有人对我如何解决这个问题有任何想法吗?我不知道如何阻止 jarbundler 删除所有内容,所以我担心我将不得不做一些更黑客的事情。我对 Ant 也很陌生,仅供参考。


在源代码管理中拥有 distcan如果您希望您的源代码控制系统成为一个良好的实践,独特的参考对全部:

  • 开发商
  • 汇编程序(单元测试)
  • 同源测试人员(您在集成平台上查询一堆 dist,并在那里执行非回归测试、性能测试、压力测试等)
  • 生产发布经理 ...

但你需要有一个适当的发布流程来完成这个任务。

就你而言,build必须在一个单独的私有目录,这是一个不在 subversion 中的目录。当构建没问题时,你import如果它是一个official发布,或者如果它是临时构建,只需下一个团队需要,则将其导入到共享目录(从而避免将数百个构建提交到 SCM,白白浪费空间)。

注意:在 SCM 中进行传递(dist)的主要优点是允许依赖的项目不与您的源代码一起工作,而是直接与您的交付一起工作(这必然会在某一时刻或另一时刻进入生产):如果他们设法使他们的代码工作,通过与您的交付一起编译,那么他们很可能会成为自己的目标,当与您一起部署,将会起作用。
这样,其他团队就可以在访问其任何源时访问您的交付(您的“myProject.jar”):他们可以通过 SCM 读取您的 jar 的版本、日期、历史记录、元数据、标签以及很快。

然而,对于一个小型整体项目(如“没有其他项目依赖它”)项目,可以说 dist (最终打包交付)可以根据需要重新构建并存储在外部参考系统中,例如作为外部 Maven 存储库。
但是:Maven 不是 SCM 存储库,这意味着您需要对 jar 进行签名(“MyProject-1.0.jar”),您没有历史记录,并且需要在交付过程中在单独的文本文件中报告所有元数据。访问该 Maven 存储库中的该交付的任何其他项目都需要根据您的版本命名约定调整其脚本和类路径。
另外,Maven 是开发架构中的另一个存储库。只要你能将存储库的数量保持在最低限度(“1”;)),那就更好了。

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

当您的 ant 构建过程在版本控制上崩溃时该怎么办 的相关文章

  • 未找到指定的 VM 安装:类型标准 VM,名称 jre7

    未找到指定的 VM 安装 类型标准 VM 名称 jre7 您在 Eclipse 中构建 ant 文件时遇到过这个问题吗 那么这篇文章适合您 删除并重新创建工作区并不是解决方案 有一个简单的解决方案可以解决此问题 而无需重新创建工作区 右键单
  • 如何正确创建可通过http访问的SVN存储库? (在 public_html 内)?

    情况是这样的 subversion 已安装在服务器中 并且我可以访问服务器中的共享帐户之一 不是 root 并且该共享托管帐户具有 SSH 访问权限 我想创建一个存储库 我可以在其中提交我正在处理的 PHP 文件 当我提交时 它应该可以在浏
  • TESTNG 无法在类路径中找到类问题

    我们正在将 testng 与我们的应用程序集成 我为 ant build 创建了 testng xml 和 testngbuild xml 运行 ant build 时 它抛出 Cannot find class in classpath
  • Ant 复制文件而不覆盖

    Is there any command in ant to copy files from one folder structure to another without checking the last modified date t
  • Subversion:暂存文件以显式提交?

    我已经非常习惯 git 的方式 即必须接触要提交的每个文件 并且在执行此操作时仔细检查差异 现在在工作中我必须使用 svn 并且我总是不小心提交一些东西 有没有办法让 subversion 的行为像 git 一样 因为我必须明确告诉每个文件
  • SQL Server Management Studio 2005 或 2008 是否有 SVN 插件? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 正在寻找一个 源代码控制 插件来将 SSMS 与 Subversion SVN 集成 有人知道其中一个吗 Redgate 的解决方案似乎是
  • 使用 Ant 运行 JUnit 测试

    我正在尝试运行我的 JUnit 测试用例 但我不断收到错误 Test com capscan accentsWorld FAILED 报告已创建 但测试未运行 这是我的蚂蚁代码
  • 更改 ant junit 任务中的工作目录

    我有一个运行 JUnits 测试的 ant 文件 这些测试依赖于某些配置文件的相对路径 我尝试设置批量测试的工作目录 但失败 我希望工作目录是 plugins dir name ant 脚本的 JUnit 部分
  • 通过 Git/SVN 将前缀 ? 添加到代码中

    怎么加前缀 v VersionNumber使用 Git SVN 高效地访问存储库中的每个文件 我发现 SO 使用这种做法为其存储库中的每个特定文件提供版本号 他们使用SVN 我想知道如何使用 Git 做同样的事情 举几个例子 1 2 在你的
  • ant + yuicompressor 路径错误

    我有一个文件C Bin test js我想压缩并重命名测试 min js my ant 构建 xml看起来像这样
  • 有没有办法过滤掉 TortoiseSVN 日志中仅属性的更改?

    SVN 的 mergeinfo 功能确实很有用 但是当文件上的所有更改都是 svn 属性时 它会在修订日志中放置一个日志条目 而我们通常不希望看到这些 有没有办法过滤掉 TortoiseSVN 日志中仅属性的更改 拉起日志 选择您要比较的两
  • 如何在Ant中添加相当于java -D的系统属性

    我需要设置java Djava library path some path我想在运行 ant 脚本 构建 jar 时执行此操作 我想我必须使用
  • TortoiseGit 与 TortoiseSVN 并存?

    我已经使用 TortoiseSVN 好几年了 但我正在考虑慢慢改用 git 因为我真的很喜欢它的分支和合并 我目前正在通过命令行使用 git 但正在考虑安装 TortoiseGit 有人有并排使用两只乌龟的经验吗 这有什么已知的问题吗 我真
  • git-svn 期间“RA 层请求失败:REPORT 请求失败”

    我一直在尝试使用以下命令 Git 克隆 Google Code SVN 存储库 git svn clone stdlayout https wtorrent project googlecode com svn wtorrent git 它
  • 无法加载文件或程序集“SharpSvn”或其依赖项之一。尝试加载格式不正确的程序

    我刚刚在这里下载了 64 位版本的 SharpSVNthe link http sharpsvn open collab net files documents 180 5570 SSvn 1 7002 1998 x64 zip 当我运行我
  • 从java程序调用SVN命令

    我想从 java 程序调用 SVN 命令 update commit 有什么帮助吗 SVN 乌龟SVN 环境 java程序将在jBoss服务器内运行 从应用程序服务器内使用 GUI SVN 客户端是一个非常非常糟糕的主意 而Tortoise
  • 将 ant 目标传递给子目录中的多个 build.xml 文件

    我有一个包含多个模块的项目 每个模块都在自己的目录中 每个模块都有自己的ant构建文件 build xml 在根目录中 我设置了一个通用构建文件 该文件以正确的顺序调用每个模块的构建文件
  • 在 Java 构建过程中更改常量的最佳方法

    我继承了一个在 Tomcat 下运行的 Java 应用程序 servlet 由于历史原因 根据应用程序的部署位置 本质上是品牌问题 代码具有不同的 外观和感觉 选项 有几个常量控制这个品牌过程 它们具有不同的功能 不应压缩为单个常量 即 B
  • 您使用分支/标签/主干约定吗?

    您是否始终遵循将分支 标签和主干目录放在 Subversion 存储库顶层的惯例 最近 我不再打扰 也没有发生任何不好的事情 还 如果需要创建目录树 应该可以移动目录树 我是不是给以后惹麻烦了 您是否尝试过分支或标记 到那时 就没有问题了
  • 清理 Subversion 存储库的最佳方法是什么?

    我有一个不断增长的存储库 其中包含十几个我使用 TortoiseSVN 维护的项目 因为我对此完全陌生 还不知道其来龙去脉 我保存存储库的空间有限 因此我想备份它 然后删除一些旧版本 例如 如果一个项目的版本为 50 我只想保留 50 49

随机推荐

  • 龙目岛与休眠

    这可能吗 没有看到太多关于它的讨论 当然 根据我的经验 它效果很好 这是一个示例实体 Entity Cache usage CacheConcurrencyStrategy READ WRITE public class PingerEnt
  • 避免 JSF Web 应用程序上的后退按钮

    我正在显示非常敏感的数据 用户从我的服务器注销后 我不希望其他用户能够看到点击浏览器后退按钮的数据 我怎样才能实现这个目标 默认情况下 浏览器的后退按钮根本不会向服务器发送 HTTP 请求 相反 它从浏览器缓存中检索页面 这本质上是无害的
  • 如何显示信息窗口而不显示谷歌地图中标记的图标

    我可以只显示谷歌地图中的信息窗口吗 我正在使用 Google Map 的 V2 api 开发 Android 应用程序 我想在信息窗口中显示路线信息 但不想显示标记图标 那么信息窗口可以与标记分开吗 如果是这样 我怎样才能在隐藏标记的同时只
  • 在 $stateProvider.state 中分配多个控制器

    对于高级角度用户来说 这可能是一个简单的问题 但我没有在某个地方找到这个问题得到很好的解释 所以我正在重构我的代码 当我意识到一个视图中有两个控制器时 当控制器 ACtrl 由 stateProvider 绑定并且控制器 BCtrl 由 n
  • Redis 排序集和解决关系

    我正在使用 Redis 排序集来存储我正在处理的项目的排名 我们没有预料到 我们想要如何处理关系 Redis 按字典顺序对具有相同分数的条目进行排序 但我们想要做的是对具有相同分数的所有条目给予相同的排名 例如在以下情况 redis 127
  • 如何更改 React Material UI 上的 Stepper 颜色?

    在上面的屏幕截图中 我尝试将步骤颜色更改为 绿色表示正确 黄色表示正在进行 红色表示不正确 我怎么能这样做呢 如果有人仍在寻找这个问题 对于 MUI 5 可以通过SX属性 https mui com system the sx prop o
  • FlatList 内的 TextInput 在离屏时失去焦点

    当 TextInput 获得焦点并且用户滚动直到输入离开可见框架时 输入会变得模糊并且键盘消失 我该如何解决 我正在 Android 模拟器中运行代码 在 iOS 上不会出现此问题 如果您尝试点击 FlatList 底部的 TextInpu
  • 在 Woocommerce 中的账单详细信息之前添加新的自定义结帐字段?

    我可以将一组自定义字段添加到 WooCommerce 结账屏幕 但需要将其移至 账单详细信息 上方 那怎么办呢 根据这个 WooCommerce 官方文档 https docs woocommerce com document tutori
  • 无法使用 PDI 步骤连接到 HDFS

    我已经配置成功了Hadoop 2 4 in an Ubuntu 14 04 虚拟机 from a 视窗8系统 Hadoop 安装工作绝对正常 而且我还可以从 Windows 浏览器查看 Namenode 附图如下 所以 我的主机名是 ubu
  • 如何以编程方式获取设备的当前地理位置

    我需要获取设备当前的地理位置 场景 如果我在US my device location should be US 和我在的时候的情况一样UK my device location should be UK 我需要用于查找此地理位置的示例代码
  • 如何在 IndexedDB 中创建具有多个条件的查询

    我有一个商店有多个我想要查询的索引 为了举例 我们假设我有一个消息存储 其中包含 user id 索引和 create date 时间戳 并且假设我有索引 user id create date user id create date 我知
  • System.Net.WebException:服务器违反了协议

    我有以下代码来进行调用 然后返回 xml private string Send string url try HttpWebRequest request HttpWebRequest WebRequest Create url usin
  • 在watson会话中,如何从程序中的一个节点跳转到另一个节点?

    我面临一个问题 我已经在 Watson 对话工作区中创建了对话 并且我知道如何跳转到对话中的另一个节点 我的问题是如何跳转java程序 例如 我的对话中有5个节点 它们是顺序 node1 gt node2 gt node3 gt node4
  • 字符串文字:它们去了哪里?

    我对字符串文字的分配 存储位置感兴趣 我确实找到了一个有趣的答案here https stackoverflow com questions 51592 is there a need to destroy char string or c
  • Oracle 10g 内连接的 0RA-00952

    这有效 SELECT PRODUCT INFOS FIELD VALUE PRODUCT INFOS COIL ID SYSTEM PRODUCT INFOS TIME STAMP PRODUCT INFOS FIELD NAME FROM
  • 如何在 Symfony2 中动态添加验证器?

    I ve a password表单字段 not映射到User密码 与其他两个 映射 字段一起用于更改密码表单 first and last 我必须动态添加验证器 如果值密码为空则不进行验证应该发生 否则一个新的MinLength and M
  • 可以从 Angular ng-click 表达式调用“alert()”或“console.log()”吗?

    我试图测试我的ng click绑定正在工作 但我似乎遇到了一个更基本的问题 如何查看正在发生的事情 或没有发生 我常用的 粗暴 调试方法 alert and console log 似乎不可用 是否可以从 Angular 应用程序中访问这些
  • jQuery:处理 id 属性中的空格

    我有一个 id A B 的元素 下面的代码fails
  • Google App Maker 将记录保存到数据库每条记录需要 240 毫秒

    我们有一个使用 Google Cloud SQL 表的 Google App Maker 应用 我们的位置是中欧布拉格 保存一项记录至少需要令人难以置信的 240 毫秒 看起来 Google 应用制作工具在我的位置附近有一个代理 延迟约 2
  • 当您的 ant 构建过程在版本控制上崩溃时该怎么办

    所以我有一个很好的 Java 项目 使用 Ant 构建到 dist 文件夹 整个项目处于版本控制之下 因此我只需通过 dist 文件夹路径上的 svn导出 即可部署最新版本 但我的构建不断删除 dist 文件夹内的 svn 文件夹及其所有依