Deployment 关于创建自包含项目和分发带有源代码的web服务器的建议

Deployment 关于创建自包含项目和分发带有源代码的web服务器的建议,deployment,continuous-integration,build-automation,Deployment,Continuous Integration,Build Automation,我需要一些关于如何配置项目的建议,以使其在开发、暂存和生产环境中工作: 我有一个web应用程序项目MainProject,它包含两个子项目ProjectA和ProjectB,以及一些公共代码common。它位于Subversion存储库中。它几乎都是HTML、CSS和JavaScript 在我们当前的开发环境中,我们检查MainProject,然后设置Apache虚拟主机指向每个子项目的目录,因为每个项目中的路径都是相对于它们的根目录的。我们还有一个构建过程,然后将每个子项目编译成它们自己的可交

我需要一些关于如何配置项目的建议,以使其在开发、暂存和生产环境中工作:

我有一个web应用程序项目MainProject,它包含两个子项目ProjectA和ProjectB,以及一些公共代码common。它位于Subversion存储库中。它几乎都是HTML、CSS和JavaScript

在我们当前的开发环境中,我们检查MainProject,然后设置Apache虚拟主机指向每个子项目的目录,因为每个项目中的路径都是相对于它们的根目录的。我们还有一个构建过程,然后将每个子项目编译成它们自己的可交付包,并将公共代码复制到每个子项目中

所以-我正在努力使这个项目的开发更容易一些。目前,apachehttp.conf文件、build.xml文件以及其他几个地方都有很多文件路径的配置

理想情况下,我希望将项目从SVN签出到一台新的计算机上,并将web服务器作为项目的一部分,完全配置,然后可以在PC或Mac上从签出目录运行,只需很少的额外配置。我希望任何人都能够运行构建来编译它

我很想听听做过类似事情的人的意见,以及你的建议

谢谢,
Paul

我在Java中使用Jetty完成了这项工作。基本上,您可以编写一个简单的Java类来启动Jetty(这是一个小型web服务器),然后通过ant任务运行它(我将其用于自动测试,Java代码向服务器发出请求,并以各种方式检查结果)


我不确定它在这里是否合适,因为您根本没有提到Java,所以如果它不是您想要的那种东西,我深表歉意。

我已经用Jetty从Java内部完成了这项工作。基本上,您可以编写一个简单的Java类来启动Jetty(这是一个小型web服务器),然后通过ant任务运行它(我将其用于自动测试,Java代码向服务器发出请求,并以各种方式检查结果)


不确定它在这里是否合适,因为您根本没有提到Java,所以如果它不是您想要的那种东西,那么很抱歉。

如果您可以将python添加为依赖项,您可以在不到十行代码的情况下运行最小的HTTP服务器。如果您有基本的服务器端代码,那么也有一个CGI服务器

以下代码段直接从BaseHTTPServer文档中复制

import BaseHTTPServer
def run(server_class=BaseHTTPServer.HTTPServer,
        handler_class=BaseHTTPServer.BaseHTTPRequestHandler):
    server_address = ('', 8000)
    httpd = server_class(server_address, handler_class)
    httpd.serve_forever()

如果您可以添加python作为依赖项,那么您可以在不到十行代码中运行一个最小的HTTP服务器。如果您有基本的服务器端代码,那么也有一个CGI服务器

以下代码段直接从BaseHTTPServer文档中复制

import BaseHTTPServer
def run(server_class=BaseHTTPServer.HTTPServer,
        handler_class=BaseHTTPServer.BaseHTTPRequestHandler):
    server_address = ('', 8000)
    httpd = server_class(server_address, handler_class)
    httpd.serve_forever()

嗨,是的,这可能更接近我需要的。基本上我的项目是静态HTML和JavaScript,但我想添加一点服务器端代码来模拟Ajax调用。然后我希望能够在任何机器上检查它,构建它并在那里运行它,然后,无需进一步配置。这可能会奏效,我只需要编写一个Python脚本来处理表单提交并模拟返回一些动态数据。谢谢,保利,是的,这可能更接近我需要的。基本上我的项目是静态HTML和JavaScript,但我想添加一点服务器端代码来模拟Ajax调用。然后我希望能够在任何机器上检查它,构建它并在那里运行它,然后,无需进一步配置。这可能会奏效,我只需要编写一个Python脚本来处理表单提交并模拟返回一些动态数据。谢谢,保罗