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 にしました。
コメントを残す
コメントを投稿するにはログインしてください。