<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>润物无声 &#187; Scala</title>
	<atom:link href="http://blog.zhourunsheng.com/tag/scala/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.zhourunsheng.com</link>
	<description>天空一朵雨做的云</description>
	<lastBuildDate>Sat, 08 May 2021 05:17:21 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.41</generator>
	<item>
		<title>Heroku 上的 Scala 程序设计</title>
		<link>http://blog.zhourunsheng.com/2011/10/heroku-%e4%b8%8a%e7%9a%84-scala-%e7%a8%8b%e5%ba%8f%e8%ae%be%e8%ae%a1/</link>
		<comments>http://blog.zhourunsheng.com/2011/10/heroku-%e4%b8%8a%e7%9a%84-scala-%e7%a8%8b%e5%ba%8f%e8%ae%be%e8%ae%a1/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 12:29:46 +0000</pubDate>
		<dc:creator><![CDATA[润物无声]]></dc:creator>
				<category><![CDATA[程序设计]]></category>
		<category><![CDATA[Heroku]]></category>
		<category><![CDATA[Scala]]></category>

		<guid isPermaLink="false">http://blog.zhourunsheng.com/?p=1022</guid>
		<description><![CDATA[<p>最近 Heroku 官方博客发布声明已经支持Scala语言《Scala now runs on Heroku》 [&#8230;]</p>
<p><a rel="nofollow" href="http://blog.zhourunsheng.com/2011/10/heroku-%e4%b8%8a%e7%9a%84-scala-%e7%a8%8b%e5%ba%8f%e8%ae%be%e8%ae%a1/">Heroku 上的 Scala 程序设计</a>，首发于<a rel="nofollow" href="http://blog.zhourunsheng.com">润物无声</a>。</p>
]]></description>
				<content:encoded><![CDATA[<p>最近 Heroku 官方博客发布声明已经支持Scala语言《<a href="http://blog.heroku.com/archives/2011/10/3/scala/" target="_blank">Scala now runs on Heroku</a>》，本文就带领大家熟悉一下Scala App的开发流程。</p>
<p>目前有两种开发部署方式可供选择，一种类似《<a title="Heroku 上的 Java 程序设计" href="http://blog.zhourunsheng.com/2011/08/heroku-%e4%b8%8a%e7%9a%84-java-%e7%a8%8b%e5%ba%8f%e8%ae%be%e8%ae%a1/">Heroku 上的 Java 程序设计</a>》，采用Maven管理，另一种是利用 <a href="https://github.com/harrah/xsbt" target="_blank">sbt</a> (the Scala Build Tool) 去开发部署，本文以第二种方式来进行介绍。关于Heroku的详细介绍和本地的开发环境安装，请参照博文《<a title="Heroku 上的 Java 程序设计" href="http://blog.zhourunsheng.com/2011/08/heroku-%e4%b8%8a%e7%9a%84-java-%e7%a8%8b%e5%ba%8f%e8%ae%be%e8%ae%a1/">Heroku 上的 Java 程序设计</a>》，本文只对不同的地方做具体说明。</p>
<p><strong>Heroku = Polyglot + Platform as a Service (PaaS) + Cloud Components</strong></p>
<p><span id="more-1022"></span></p>
<h3>开发步骤</h3>
<ol>
<li>安装 Scala 开发工具 <a href="https://github.com/harrah/xsbt/wiki/Setup" target="_blank">sbt</a>（win7的环境我已经写好了配置文件，直接下载到工程目录中即可<a href="http://blog.zhourunsheng.com/wp-content/uploads/2011/10/win7_sdt.zip">win7_sdt</a>）</li>
<li>登录 Heroku :
<pre>heroku auth:login</pre>
</li>
<li>创建一个新工程目录，例如careyscala，目录中新建文件 <em>careyscala/build.sbt，</em> 内容如下:
<pre>scalaVersion := "2.9.1"

{
  val stage = TaskKey[Unit]("stage", "Prepares the project to be run, in environments that deploy source trees rather than packages.")
  stage in Compile := {}
}</pre>
<p>为Heroku添加一个新的 “stage” task.</li>
<li>建立编译配置文件 <em>careyscala/project/build.properties</em> ，用来指明sdt的版本，具体内容如下:
<pre>sbt.version=0.11.0</pre>
</li>
<li>建立 Scala app 源代码文件 <em>src/main/scala/Hello.scala</em> ，具体内容如下:
<pre>object Hello extends App {
  println("hello, Carey")
}</pre>
</li>
<li>本地运行测试 app :
<pre>sbt run</pre>
<p>程序输出，第一次运行比较慢，要耐心等待...需要从网上下载依赖包:</p>
<pre>[info] Set current project to default-bb7250 (in build file:/E:/Program%20Files/
Heroku/work/careyscala/)
[info] Updating {file:/E:/Program%20Files/Heroku/work/careyscala/}default-bb7250
...
[info] Done updating.
[info] Compiling 1 Scala source to E:Program FilesHerokuworkcareyscalatarge
tscala-2.9.1classes...
[info] Running Hello
hello, Carey
[success] Total time: 6 s, completed 2011-10-4 19:55:56</pre>
</li>
<li>建立git配置文件 <em>.gitignore</em> ，具体内容如下:
<pre>target
project/boot
project/target</pre>
</li>
<li>建立 git repo, 添加文件并commit:
<pre>git init
git add build.sbt project/build.properties src
git commit -m init</pre>
</li>
<li>在 Heroku 服务端新建一个App:
<pre>heroku create -s cedar</pre>
</li>
<li>上传 Scala app 到 Heroku 服务器:
<pre>git push heroku master</pre>
</li>
<li> Heroku服务器端运行APP:
<pre>heroku run "sbt run"</pre>
<p>哈哈，是不是看到期待的结果了</li>
</ol>
<p>一切都是如此简单，通过这个Demo，相信大家已经熟悉了在Heroku上面开发和部署Scala App的基本流程了，接下来发挥你的创造力吧，如果有什么建议或问题的话，请联系我，<a href="http://devcenter.heroku.com/articles/scaling-out-with-scala-and-akka" target="_blank">官方开发论坛</a>里面包含了好多宝贝，自己发掘吧！</p>
<h3>参考文献</h3>
<p><a title="Permalink to Getting Started with Scala on Heroku" href="http://www.jamesward.com/2011/09/07/getting-started-with-scala-on-heroku" rel="bookmark">Getting Started with Scala on Heroku</a></p>
<p><a rel="nofollow" href="http://blog.zhourunsheng.com/2011/10/heroku-%e4%b8%8a%e7%9a%84-scala-%e7%a8%8b%e5%ba%8f%e8%ae%be%e8%ae%a1/">Heroku 上的 Scala 程序设计</a>，首发于<a rel="nofollow" href="http://blog.zhourunsheng.com">润物无声</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zhourunsheng.com/2011/10/heroku-%e4%b8%8a%e7%9a%84-scala-%e7%a8%8b%e5%ba%8f%e8%ae%be%e8%ae%a1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
