我有一个包含带时间戳的快照工件的存储库.
我想创建一个包含依赖项的程序集.这很好用.但工件名称包含时间戳.所以我想知道如何仅从程序集的文件名中删除时间戳.
我已经使用了这个dependencySet:
<outputFileNameMapping>${artifact.artifactId}-${artifact.version}.${artifact.extension}</outputFileNameMapping>
Run Code Online (Sandbox Code Playgroud)
但版本接缝已包含时间戳.那么有没有机会获得1.1.1-SNAPSHOT而不是1.1.1-20100323.071348-182?
我正在使用maven-assembly-plugin的2.2-beta-4版本.
是否有关于如何/在何处指定应用程序版本号的约定?
例如,对于ruby gems lib/mygem/version.rb,通常用于此目的的文件.
我的猜测是创建这样的config/version.rb文件:
module MySite
VERSION = "0.0.4"
# or in MySite::Application class
#
# class Application
# VERSION = "0.0.4"
# end
end
Run Code Online (Sandbox Code Playgroud) 在支持基于微服务的体系结构中进行版本控制的最佳实践是什么,在运行时支持同一服务的多个版本化部署以及消费者如何能够使用不同的版本?1)如果我们使用基于路由的版本控制作为这里提到的方法之一, 那么我想我们会有以下缺点
向消费者公开版本信息是最佳做法吗?
无论如何,我认为,以下内容始终适用:
什么样的微服务版本控制策略可以帮助我们实现上述目标?
注意 - 如果需要分成多个问题,请随时告诉我.
当我使用subversion作为应用程序的代码时,我可以将一个句点和结果附加svnversion到版本号以创建一个唯一且单调递增的版本号,并且还可以保证任何签出的相同修订版本代码将生成相同的版本号.
在Mercurial中,由于修订号在克隆之间不一定一致,因此本地修订号不适用.散列是适当唯一且一致的,但不会创建单调增加的数字.如何根据Mercurial存储库提交生成适当的数字以附加到版本号?
编辑: 我有一个具有自动更新检查的应用程序,该应用程序依赖于版本号,该版本号是一系列以句点分隔的整数,以确定版本是否更新.在发布之间的时间里,我有一些用户在尝试测试版本.通常,这些构建解决了测试人员遇到的问题,因此测试人员停止使用已发布的版本并切换到测试版本.我在将额外组件添加到版本号时的最初目标是:
例如,0.5.0版本的版本号为0.5.0.410; 在0.5.1发布之前,有版本号为0.5.1.411,0.5.1.420和0.5.1.421的测试版本; 然后,0.5.1版本的版本号为0.5.1.423.
很高兴在Confluence中拥有版本历史记录.但是,每次编辑和保存文档时都会创建新版本.我正在寻找更多的"发布"历史.假设我的文档/页面版本为1.0.然后,在我准备好"发布"1.1之前,我编辑并保存了几次页面.我需要一些东西将版本链接到版本号,然后有一个自动发布历史记录.
有没有办法在Confluence做类似的事情?
我相信计算机是做重复性任务的最佳选择.我当然不是,我要么忘记,要么(大多数时候)不以一致的方式做事 - 这不是我想要的.
我可能要做的一件事是在发布新版本的Android应用时忘记清单中的版本信息.在过去,我使用过具有自动版本编号功能的配置构建系统,并且我已经习惯了(或者我很懒).
我发现这个Stackoverflow帖子在提出解决方案时非常有用,但是我花了一段时间对它进行微调,以便它按照我想要的方式工作.早期的尝试有时会导致继续建设,这是一个痛苦.所以我想我会在这里发布我的解决方案,希望别人会发现它有用.
我想为我的一些javascript和css文件启用版本控制,因为我在网站上工作时遇到了缓存问题.我在Django 1.6中读到了CachedStaticFilesStorage,看起来很完美.我将settings.py修改为以下设置:
STATIC_ROOT = 'staticfiles'
STATIC_URL = ''
# Additional locations of static files
STATICFILES_DIRS = (
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.CachedStaticFilesStorage'
Run Code Online (Sandbox Code Playgroud)
作为测试,我然后重写了最有问题的css标签,看它是否会开始散列文件路径.每当我尝试加载页面时,我都会收到500错误.
我出错的任何想法?我错过了一个额外的步骤吗?
模板中的条目:
{% block cssfiles %}
{% load static%}
<link href="{% static "/static/css/mapmaker.css" %}" media="screen">
{% endblock %}
Run Code Online (Sandbox Code Playgroud) 我已经开始研究一个新项目了,我们被要求将系统构建为一系列微服务,使用RabbitMQ作为它们之间的通信层.
在开发REST API时,我倾向于使用接受HTTP标头来控制版本控制,我发现您可以在RabbitMQ中使用标头交换以类似的方式路由消息.但是,由于这纯粹是一个内部消息系统,我不确定标头交换的额外复杂性是否真的值得一试?
RabbitMQ消息版本化的典型设置是什么?在我看来,选项是:
感谢您提供的任何输入.
我已经为REST apis(header,url,...)评估了许多版本控制模式.到目前为止,最可靠的方法似乎是url选项:它适用于代理,并且不依赖于模糊日期等模糊模式.
现在,当我环顾四周,大家谁使用基于URL的方法似乎使用的版本,如v1,v2等.没有人使用次要版本,甚至是语义版本控制等模式.
这提出了一些问题:
换句话说:像GitHub这样的公司,v3如今只有今天(2015年),现在已经有7年了?这是否意味着他们实际上只改变了他们的api两次?我简直不敢相信.
任何提示?
我有一个项目正在退出alpha阶段,我准备开始定期发布.我知道GitHub有一个"魔术"释放按钮,但我通常不喜欢'魔术'功能,我不知道他们究竟做了什么:
https://github.com/blog/1547-release-your-software
据我所知,GitHub上的"魔术"发布功能只是在源存储库中为代码的某个状态创建一个标记,或者使用现有标记.根据该链接,标记名称必须反映语义版本号,即Major.Minor.Patch ex:v10.1.2或类似的东西.
一般来说,接受Git的方法就是简单地创建标签.我想做的是让Git在我的代码树中自动创建一些名为version.txt或version.h文件的文件,其中包含我创建的git标签的名称,以便该文件可以自动获取用户在命令行上发出myporgram --version.我最好喜欢一个自动生成的头文件,因为在构建程序时它会被集成到二进制文件中.有没有办法自动执行此操作,或者在发出git tag命令之前是否必须自动将标记号管道传输到文件中?
versioning ×10
git ×2
android ×1
api ×1
architecture ×1
artifacts ×1
assemblies ×1
confluence ×1
css ×1
django ×1
github ×1
maven-2 ×1
maven-3 ×1
mercurial ×1
python ×1
rabbitmq ×1
rest ×1
ruby ×1
soa ×1
version ×1