シンプルなScalaプロジェクトの作成
MavenでScalaプロジェクトを作成するには、LIST24の冒頭のようなコマンドを入力します(インターネットへの接続が必須となります)。これによりMavenはScalaを実行するために必要なパッケージを入手します。途中で質問に入力を促されるので、LIST24を参考に答えてください。するとtestAppというフォルダが作成され、そのフォルダ以下にはシンプルなScalaのサンプルコードが置かれます。
mvn archetype:generate -DarchetypeGroupId=org.scala-tools.archetypes -DarchetypeArtifactId=scala-archetype-simple -DarchetypeVersion=1.2 -DremoteRepositories=http://scala-tools.org/repo-releases -DgroupId=com.test_scala_maven -DartifactId=testApp ●2つの質問に答える Define value for version: 1.0-SNAPSHOT: : 1.2 ・・・・ Y: :y [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------
この内容は少しバージョンが古いため、¥testApp¥pom.xml
ファイルをLIST25のように修正しましょう。
8行目 変更前 <scala.version>2.7.0</scala.version> 変更後 <scala.version>2.7.5</scala.version> 64行目~66行目を削除 <args> <arg>-target:jvm-1.5</arg> </args>
さらに次のコマンドを実行すると、「Hello World!」と表示されます。
testApp>mvn clean scala:console-DmainConsolecom.test_scala_maven.App
シンプルなLiftwebプロジェクトの作成
WebフレームワークであるLiftweb(後述)のプロジェクトもMavenで作成してしまいましょう。LIST26のコマンドでLiftwebのプロジェクトを作成できます。
mvn archetype:generate -U -DarchetypeGroupId=net.liftweb -DarchetypeArtifactId=lift-archetype-basic -DarchetypeVersion=1.0 -DremoteRepositories=http://scala-tools.org/repo-releases -DgroupId=com.liftworkshop -DartifactId=todo -Dversion=0.1-SNAPSHOT
¥todo¥pom.xml
ファイルをLIST27のとおり修正するtodoフォルダに移動し、LIST28のコマンドでコンパイルを実行し、アプリケーションを起動すると、次のメッセージが表示されます。
11行目 変更前 <scala.version>2.7.3</scala.version> 変更後 <scala.version>2.7.5</scala.version>
●コンパイルを実行 todo> mvn clean compile ●アプリケーションを起動 todo> mvn jetty:run
[INFO] Started Jetty Server [INFO] Starting scanner at interval of 5 seconds.
表示されたら、Webブラウザでhttp://localhost:8080/にアクセスすれば、テストアプリケーションが表示されます。
同じポート番号を使う事は出来ないため、pom.xmlファイルに、以下を追記します。
●92行目 <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> <configuration> <contextPath>/</contextPath> ●97行目 <scanIntervalSeconds>5</scanIntervalSeconds> --------------------------------------------------------------- 追加開始 <connectors> <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector"> <port>8088</port> <maxIdleTime>60000</maxIdleTime> </connector> </connectors> --------------------------------------------------------------- 追加終了 </configuration> </plugin>
<port>
8088</port>
には、他のサービスが使用していない番号を指定します。