Maven2/3 & Scala2.8.1

Posted 2011年1月6日 by

mvnプロジェクトを作る

Eclipse で Scala コードを書いてきましたが、だんだん重くなりハングアップするようになってきたので、いまさらではありますが Maven2 に環境を移すことにしました。
Maven3 でも試してみましたが問題なく実行できます。

pom.xml
pom.xmlをどう書けばいいかを調べて参考にしたのが
やはりこのページ http://www.scala-lang.org/node/345でした。
2011年1月現在で入手できるバージョンで環境構築するとなると実際に書いてみるしかないです。

ここでまたわからないことが、JDBCドライバやjpa.jar など既存のJARファイルをどうやって登録しればいいのかです。
レポジトリをちゃんと作る方がいいのですね。
でも、とりあえずということでローカルリポジトリに入れるのが簡単そうなので次のようにして登録しました。
-DgeneratePom=true を書かないとダメです。

mvn install:install-file -Dfile="C:\SeedoMaven2\lib\jpa.jar" -DgroupId=javax.persistence -DartifactId=jpa -Dversion=2.0 -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -Dfile="C:\SeedoMaven2\lib\ojdbc6.jar" -DgroupId=ojdbc6 -DartifactId=ojdbc6 -Dversion=6 -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -Dfile="C:\SeedoMaven2\lib\orai18n.jar" -DgroupId=orai18n -DartifactId=orai18n -Dversion=8 -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -Dfile="C:\SeedoMaven2\lib\mysql-connector-java-5.1.8-bin.jar" -DgroupId=mysql-connector-java -DartifactId=mysql-connector-java -Dversion=5.1.8-bin -Dpackaging=jar -DgeneratePom=true



ローカルリポジトリは、.m2フォルダに作られますがこれをWebサーバなどにアップロードすれば格納場所だけが変わるだけで使うことができます。

これでできあがったのpom.xmlがこれです。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
  <groupId>seedo</groupId>
  <artifactId>seedo</artifactId>
  <version>1.0</version>
  <packaging>jar</packaging>

  <name>seedo</name>
  <url>http://maven.apache.org</url>
 
 <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <jdkVersion>1.6</jdkVersion> 
  <junitVersion>4.8.1</junitVersion>
  <scalaVersion>2.8.1</scalaVersion>
  <scalaPluginVersion>2.15.0</scalaPluginVersion>
 </properties>
 
 <repositories>
  <repository>
   <id>scala-tools.org</id>
   <name>Scala-tools Maven2 Repository</name>
   <url>http://scala-tools.org/repo-releases</url>
  </repository>
 </repositories>
 
 <dependencies>
  <dependency>
   <groupId>org.scala-lang</groupId>
   <artifactId>scala-library</artifactId>
   <version>${scalaVersion}</version>
  </dependency>
  <dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>${junitVersion}</version>
   <scope>test</scope>
  </dependency>
  <dependency>
   <groupId>org.scalatest</groupId> 
   <artifactId>scalatest</artifactId> 
   <version>1.2</version> 
   <scope>test</scope> 
  </dependency>
  <dependency>
   <groupId>javax.persistence</groupId> 
   <artifactId>jpa</artifactId> 
   <version>2.0</version> 
   <scope>provided</scope> 
  </dependency>
  <dependency>
	<groupId>ojdbc6</groupId>
	<artifactId>ojdbc6</artifactId>
	<version>6</version>
	<type>jar</type>
	<scope>provided</scope>
  </dependency>
  <dependency>
	<groupId>orai18n</groupId>
	<artifactId>orai18n</artifactId>
	<version>8</version>
	<type>jar</type>
	<scope>provided</scope>
  </dependency>
    <dependency>
	<groupId>mysql-connector-java</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>5.1.8-bin</version>
	<type>jar</type>
	<scope>provided</scope>
  </dependency>
 </dependencies>
 
 <build>
  <!--
   <sourceDirectory>src/main/scala</sourceDirectory>
   <testSourceDirectory>src/test/scala</testSourceDirectory>
  -->
  <!-- To define the plugin version in your parent POM -->
  <pluginManagement>
   <plugins>
    <plugin>
     <groupId>org.scala-tools</groupId>
     <artifactId>maven-scala-plugin</artifactId>
     <version>${scalaPluginVersion}</version>
    </plugin>
   </plugins>
  </pluginManagement>
  <plugins>
   <!-- To use the plugin goals in your POM or parent POM -->
   <plugin>
    <groupId>org.scala-tools</groupId>
    <artifactId>maven-scala-plugin</artifactId>
    <version>${scalaPluginVersion}</version>
    <executions>
     <execution>
      <goals>
       <goal>compile</goal>
       <goal>testCompile</goal>
      </goals>
     </execution>
    </executions>
    <configuration>
     <scalaVersion>${scala.version}</scalaVersion>
     <jvmArgs>
      <jvmArg>-Xms64m</jvmArg>
      <jvmArg>-Xmx1024m</jvmArg>
      <jvmArg>-Xss1m</jvmArg>
     </jvmArgs>
    </configuration>
   </plugin>
  </plugins>
 </build>
 
 <!-- To use the report goals in your POM or parent POM -->
 <reporting>
  <plugins>
   <plugin>
    <groupId>org.scala-tools</groupId>
    <artifactId>maven-scala-plugin</artifactId>
    <version>${scalaPluginVersion}</version>
   </plugin>
  </plugins>
 </reporting>
</project>


mvn compile 2> log.txt



mavenでコンパイルしたとき、Javaがスタックオーバーフロー(StackOverflowError)のエラーとなってしまたので、
-Xss1m にしました。

Post Details

  • Post Title: Maven2/3 & Scala2.8.1
  • Author: admin
  • Filed As: Scala
  • Tags:
  • You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

コメントを残す