• 2019年4月30日火曜日
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/04/maven.html

mavenプロジェクトのバージョンを指定する

JavaTemplateBatchはmavenプロジェクトとする。

mavenはJavaで一番標準的なプロジェクト管理ツールで、その用途は主に二つ。


  • 必要なライブラリをネットから収集してセットアップしてくれる。
  • コンパイルしてjarファイルを作ってくれる。


本当はもうちょっと拡張性があって、再帰的なテストの管理まで出来るはずなんだけど、現実としてそれ以上の機能を使っている現場は見たこと無い。
マトモにJUnit管理出来ているなんて、よほどしっかりしたプロジェクトだろうけど、僕が関わるようなありふれたプロジェクトは基本、やっつけ管理である。(;´^ω^`)

maveのデフォルトは1.5

さて、Eclipseからmavenプロジェクトを作成して一番最初に気づくのは、Javaのバージョンが1.5だということだ。


何で1.5なんだろ???
mavanは結構古いツールだから、たぶん最初に作られたのが1.5の時代で、今に至るまでずっとmavanのデフォルトは1.5のまま放置ということなのだろう。。。

とは言え、今更Java1.5を使う意味なんか無いから、速やかにバージョンアップしたい。

Eclipseの設定を変更

まず、見えている「J2SE-1.5」という表示を直そう。

Eclipseで「プロジェクトを右クリック⇒Javaのビルドパス」を表示する。


Java1.5が入っているから、これを1.8に変更すればOKだ。


mavenの設定を変更

しかし、ここで要注意がある。
上記の設定で直っているのはEclipseで実行する場合だけに過ぎなくって、mavenとしてコンパイルする場合は依然として1.5のままである。

mavenとしての設定を直すには、pom.xmlに記述する必要がある。

<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>net.aristo.template</groupId>
 <artifactId>AristJavaTemplateBatch</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <packaging>jar</packaging>

 <name>AristJavaTemplateBatch</name>
 <url>http://maven.apache.org</url>

 <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <java.version>1.8</java.version>
  <maven.compiler.target>${java.version}</maven.compiler.target>
  <maven.compiler.source>${java.version}</maven.compiler.source>
 </properties>

 <dependencies>
  <dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>3.8.1</version>
   <scope>test</scope>
  </dependency>
 </dependencies>
</project>

該当する部分はココ。

 <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <java.version>1.8</java.version>
  <maven.compiler.target>${java.version}</maven.compiler.target>
  <maven.compiler.source>${java.version}</maven.compiler.source>
 </properties>


「maven.compiler.target」と「maven.compiler.source」を指定すればOK。

普通に考えて両者は同じだから、「java.version」を変数として読み込む形で一元化するのが良いだろう。

これでまずは開発をスタート出来る。

0 件のコメント:

コメントを投稿