EclipseでのMavenプロジェクトの作成、jarファイルの作り方
基本的なことだけど躓くところが多かったのでまとめてみた。
Mavenプロジェクト作成
NewからMaven Projectを選ぶ
Create a simple projectにチェックを入れる
Group IdとArtifact Idを入力する
Artifact Idはプロジェクト名になるようだ
pom.xmlの編集
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.twitter4j</groupId> <artifactId>twitter4j-core</artifactId> <version>[4.0,)</version> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>3.0.0</version> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive><manifest><mainClass>myclient.Main</mainClass></manifest></archive> </configuration> </plugin> </plugins> </build>
外部ライブラリとしてtwitter4jを使った時のものです。
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
これがないとダイヤモンド演算子が使えないなどといったエラーメッセージがでました。
<dependencies> <dependency> <groupId>org.twitter4j</groupId> <artifactId>twitter4j-core</artifactId> <version>[4.0,)</version> </dependency> </dependencies>
これは依存するライブラリを指定しています。自動でダウンロードまでしてくれて便利!
<build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>3.0.0</version> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive><manifest><mainClass>myclient.Main</mainClass></manifest></archive> </configuration> </plugin> </plugins> </build>
これを書くことでスタンンドアロンなjarファイルが作れました。
mainClassタグを書かないと「メイン・マニフェスト属性がありません」と怒られます。
パッケージ名.メインクラス名を指定してください。
(Windowでのjavaはshift_jisで出てくるので文字化けして最初は途方に暮れてしまいました。
文字化けしたらコマンドプロンプトなどのターミナルのフォントをshift_jisにしてあげましょう。)
jarファイル作成、実行
プロジェクトのコンテキストメニュー(右クリック)からRan as -> Maven build...をクリック
Goalsにpackageと入力
プロジェクトのtargetディレクトリにjarファイルが生成される。ターミナルから
java -jar hatena-0.0.1-SNAPSHOT-jar-with-dependencies.jar
とやれば実行できる。
文字化けについて補足
PrintStream stdo = new PrintStream(System.out, true, "UTF-8"); stdo.println("utf-8で出力!");
みたいにしてやればよい