我是一个java开发人员/ python初学者,我缺少我的maven功能,特别是依赖管理和构建自动化(我的意思是你不构建,但是如何创建一个包用于部署?)
有没有python相当于实现这些功能?
注意:我使用python 2.x.
谢谢.
维护代码时要遵循的最佳实践和经验法则是什么?在开发分支中只有生产就绪代码,或者开发分支中是否有未经测试的最新代码,这是一种好的做法吗?
你们如何维护开发代码和生产代码?
编辑 - 补充问题 - 您的开发团队是否遵循"尽快提交 - 通常 - 甚至是代码包含 - 次要错误或不完整"协议或"提交 - 只有完美的代码"协议,同时将代码提交给开发分支?
假设我编写了一个Node.js应用程序,现在我想分发它.当然,我想让用户轻松,因此我不希望他安装Node.js,运行npm install然后手动输入node app.js.
我更喜欢的是单个可执行文件,例如.exeWindows上的文件.
我怎么能接近这个?
我知道这个帖子,无论如何这只是关于Windows.我怎样才能以独立于平台的方式实现这一目标?有任何想法吗?最佳做法?...?
完美的解决方案是我可以提供源文件夹的"编译器".源文件夹包含应用程序本身的各种.js文件,node_modules文件夹和一些元数据,如package.json.输出应该是各种平台的二进制文件,例如Windows,OS X和Linux.
哦,重要的是:我不想对源代码进行任何更改,因此require使用相对路径调用应该仍然有效,即使此相对路径现在位于打包的应用程序中.
有任何想法吗?
PS:我不希望用户独立安装Node.js,它也应该包含在可执行文件中.
要部署我们网站的新版本,我们执行以下操作:
这个过程都是脚本化的,并且发生得非常快,但是当旧文件被删除以及部署的新文件时,仍然会有10-20秒的停机时间.
关于0秒停机时间方法的任何建议?
我有一个RoR应用程序在我的本地计算机上工作,但当我将它发送到heroku时,它崩溃了.错误日志给出错误H10并说:
2012-11-21T15:26:47+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.4.2/lib/new_relic/control/instance_methods.rb:95:in `start_agent'
2012-11-21T15:26:48+00:00 heroku[web.1]: State changed from starting to crashed
2012-11-21T15:26:48+00:00 heroku[web.1]: Process exited with status 1
2012-11-21T15:26:59+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
2012-11-21T15:27:00+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
2012-11-21T15:30:08+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
2012-11-21T15:30:08+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico …Run Code Online (Sandbox Code Playgroud) 我对金丝雀版本的理解是,它是对部分生产节点的部分发布,其中粘性会话已打开.这样,如果您最终发布了错误的错误,您可以控制并最大限度地减少受影响的用户/客户数量.
我对蓝色/绿色版本的理解是你有2个镜像生产环境("蓝色"和"绿色"),你将更改推送到蓝色或绿色的所有节点,然后使用网络魔术来控制用户通过DNS路由到哪些环境.
所以,在我开始之前,如果我到目前为止所说的任何内容都不正确,请先纠正我!
假设我或多或少走上正轨,那么关于这两个策略的几个问题:
deployment production-environment release-management blue-green-deployment canary-deployment
我正在试图弄清楚如何组织许多(大约50多个)maven2项目,以便他们可以部署到一个中央nexus存储库.在使用mvn deploy目标时,需要在distributionManagement标记中指定目标,如下所示:
<distributionManagement>
<repository>
<id>nexus-site</id>
<url>http://central_nexus/server</url>
</repository>
</distributionManagement>
Run Code Online (Sandbox Code Playgroud)
现在,我不希望每个pom.xml(50+以上)一遍又一遍地包含这个块.我的第一个虽然是settings.xml文件,但似乎不可能(按设计)在那里定义它.那么,第一个问题是,为什么会这样呢?如果有可能我可以在maven2发行版的settings.xml中指定它,它可以分发给所有开发人员.
我发现唯一可行的解决方案是创建一个组织范围的master-pom项目,它确实包含这些设置,并使所有其他pom.xml依赖于这个master-pom via <parent>标签.但这在多模块构建中看起来很奇怪:
- master configuration POM (pm)
- Project 1 parent pom (p1 with module 1 and module 2 as modules)
- Project 1 module pom (with pm as parent)
- Project 2 module pom (with pm as parent)
Run Code Online (Sandbox Code Playgroud)
通常我在所有文档中都读到模块poms应该使用父pom,而不是一些不同的pom.但在阅读了关于继承诉聚合的maven网站之后,我们写道它确实是可能的.
我发现的一个问题是maven网站生成,这似乎有这个设置的问题(模块如果没有直接的反向引用就无法正确链接)
那么,这是一种有效的方法吗?问题的任何其他更明显,更简单的解决方案?
我有10个以上项目的解决方案(VS2010 SP1).我在解决方案中定义了以下配置:
这使我可以轻松地为每个部署方案设置特定设置.但是,出于某种原因,我无法按照自己的意愿设置设置.请看这个截图:

请注意突出显示的项目/配置.我无法为这些项目创建"Debug-QA"配置(通过<New>在该单元中选择该特定项目).例如,当我尝试向DataUtility项目添加新的"Debug-QA"配置时,Visual Studio对我大喊:
无法创建此配置,因为已存在同名的解决方案配置.
我知道它确实如此!我正在尝试将配置添加到项目中!我在这里错过了什么?我希望所有项目都有5个配置.尝试匹配(创建)平台时遇到同样的问题(例如,向DataUtility项目添加"Any CPU"平台).
我正在寻找用于将ASP.NET Web应用程序项目(非 ASP.NET网站)部署到生产中的不同技术/工具?
我对持续集成构建服务器在某个位置删除二进制文件的时间与第一个用户请求命中这些二进制文件的时间之间发生的工作流程特别感兴趣.
您使用的是某些特定工具还是只使用XCOPY?如何打包应用程序(ZIP,MSI,...)?
首次部署应用程序时,如何设置应用程序池和虚拟目录(您是手动创建还是使用某些工具创建它们)?
当静态资源发生更改(CSS,JS或图像文件)时,您是重新部署整个应用程序还是只重新部署修改后的资源?汇编/ ASPX页面何时更改?
您是否跟踪给定应用程序的所有已部署版本,如果出现问题,您是否有将应用程序恢复到先前已知工作状态的过程?
随意完成以前的列表.
以下是我们用于部署ASP.NET应用程序的内容: