当您的 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 构建过程在版本控制上崩溃时该怎么办 的相关文章

  • Eclipse、Subclipse 1.8.2、SVN 1.7.0 每次操作都要求输入密码

    我安装新的后日食靛蓝 它会要求我输入密码SVN存储库透视图 例如 浏览每个文件夹并再次询问密码 正常使用SVNKit 它要求输入密码每次会话一次 SVNKit 不支持SVN 1 7 0 yet 我该如何解决这个问题 或者这是 JavaHL
  • 如何使用 TortoiseHg (Mercurial) 下载代码

    我正在尝试下载代码世界上最差的stackoverflow克隆 http code google com p theworldsworststackoverflowclone source checkout 起初我尝试过Tortoise SV
  • 如何在Ant中添加相当于java -D的系统属性

    我需要设置java Djava library path some path我想在运行 ant 脚本 构建 jar 时执行此操作 我想我必须使用
  • 构建版本与修订号

    我有一个使用 subversion 进行源代码控制的 asp net C 应用程序 我的应用程序会在每个构建上自动增加其 AssembleVersion 和 AssemblyFileVersion 这就像一个魅力 并在网站的管理端显示构建号
  • 我的机器上的 svn.exe 在哪里?

    I have 乌龟svn安装在我的桌面上 我想使用执行一些任务命令行svn exe 但我找不到svn exe在我的机器上 我们是否需要安装其他东西才能获得svn exe命令 subversion 程序代码链接到 TortoiseSVN 二进
  • 当文件标记为“历史记录已提交”时,svn diff

    我对已合并到工作目录中主干的分支进行了更改 svn stat 显示已更改文件的正确列表 但是 svn stat 输出在计划提交新添加到分支的每个文件的历史记录中包含一个 A src main java com java 当我运行 svn d
  • 当必须同时使用 Git 和 Subversion 时如何处理 Git-svn

    Update 更详细地说 我尝试在家使用纯 Git 的原因是 我的公司希望迁移到 Git 但经理不愿意进行更改 因为开发人员不了解我们自己的存储库上的 Git 所以 我尝试做的是 我尝试让每个人都使用 Pure git 同时有人可以在这个学
  • Python Subversion 包装器库

    在颠覆的文档 http svnbook red bean com en 1 7 svn developer usingapi html svn developer usingapi otherlangs有一个从 Python 使用 Subv
  • 您使用分支/标签/主干约定吗?

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

    我刚刚看到一个非常酷的 WPF Twitter 客户端 我认为它是由 Herding Code 播客开发的畜牧法 http www herdingcode com called Witty http code google com p wi
  • svn:修订版本中不存在路径

    我想在颠覆中创建标签 在命令行上我尝试了以下操作 svn复制http myserver mycompany com 8080 svn SVN Main trunk http myserver mycompany com 8080 svn S
  • 如何检查文件是否存在,如果不存在则终止构建?

    如果文件不存在 如何停止构建并通知用户 我知道如果文件存在 我可以使用可用任务来设置属性 但我不确定如何停止构建并回显某些内容 如果可能的话 我想坚持核心任务 您可以使用任务失败 http ant apache org manual Tas
  • 使用 svn diff 时如何获取无上下文

    当我从命令行使用 svn diff 时 它会打印出已更改的行 以及前后 3 个未更改的行以获取上下文 我更喜欢只看到没有上下文的更改行 我无法确定任何命令行选项可以让我让它以这种方式运行 默认情况下 标准 diff 和 cvs diff 执
  • 无法提交到 svn - 访问被拒绝

    我正在使用 SVN 开发一个小项目 我查看了该项目 svn co http mylocalserver projectx 我进行了更改 更新并添加了文件 svn add file1 php file2 php 但是 每次我想使用此命令提交更
  • 如何在 Mac OS X 10.8 上安装 hg Convert 所需的 python subversion 绑定?

    我正在寻找一种解决方案 最好是干净且简单的 以启用hg convert使用 SVN 存储库在 OS X 10 8 上工作 目前 如果您尝试转换 SVN 存储库 您将得到一个could not load Subversion python b
  • 从本地缓存恢复SVN密码

    有没有办法从本地缓存恢复密码 密码必须存储在某处 因为我可以运行 svn co http my svn server foo 但我自己丢失了密码 我是否必须重置它 或者是否可以 以及如何 找到并解密密码 我主要在 Windows 上使用 C
  • 颠覆和混合修订:破坏构建的秘诀?

    在使用 TFS 一段时间后 我刚刚回到 subversion 一般来说我已经很退出了 有一件事情我记得不一样 我不记得能够从过时的工作副本中提交 或者也许我的记忆力让我无法理解 过时 的定义 我认为 过时 意味着自从我上次更新工作副本以来
  • 有谁知道类似于 SVN Time-Lapse View 的 Git 工具 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 SVN Time Lapse View 是一个跨平台查看器 可以下载文件的所有修订版本 并允许您通过拖
  • SVN运行上下文错误:现有连接被远程主机强制关闭

    我在 Debian Wheezy 构建服务器上创建了一个 SVN 存储库 如下所示本教程 http www networkworld com article 2224093 opensource subnet use subversion
  • 带有 LDAP 身份验证的 SVN 不起作用

    我首先从我的设置开始 为此我们有 2 台服务器 Server1 将用于所有源代码 文件等 在 Server2 上 我们拥有所有用户信息和登录信息 两台服务器都运行在 Centos 6 4 上 现在我们要在 server1 上设置一个 SVN

随机推荐

  • 龙目岛与休眠

    这可能吗 没有看到太多关于它的讨论 当然 根据我的经验 它效果很好 这是一个示例实体 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 文件夹及其所有依