質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

4931閲覧

Java6でMavenを使用しjarでパッケージングしたい

退会済みユーザー

退会済みユーザー

総合スコア0

JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2015/10/09 07:32

###前提・実現したいこと
java6 maven3.2.5 eclipseを利用して,作成したコードを依存ライブラリ含めjarにパッケージングしたい

###発生している問題・エラーメッセージ

・src/a.java(main), src/b.java
・src/resaurce/c.ini
・pom.xml

というような構成でeclipseのmavenプロジェクトからjavaコードを実行形式にパッケージングしようとしたところ,メイン-マニフェスト属性がありませんと表示され実行出来ません。原因がsetting.xmlにある気がするのですがeclipseでの構成の仕方が分からずはまっています。パッケージングのやり方を教えてもらえますでしょうか。

###pom依存ライブラリおよび設定

<dependencies> <dependency> <groupId>commons-configuration</groupId> <artifactId>commons-configuration</artifactId> <version>1.10</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.10</version> </dependency> </dependencies> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>src.a</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.4</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

argius

2015/10/09 13:34

いくつか教えてください。 MavenはEclipseプラグイン(m2e)から実行していますか? mvn package を実行してできたJARファイルを実行しようとした、ということでしょうか?
退会済みユーザー

退会済みユーザー

2015/10/09 17:17

はいその通りです。m2eから実行しています。ただ,mvn installを利用してbuildしています。eclipse上では全ての依存ライブラリとクラスを読み込み正常にmainが動作しています。そこからpackagingに必要な処理はpomで出力先とメインの場所を教えるだけだと思っていたのですがその過程でエラーが出ています。
guest

回答1

0

ベストアンサー

ご質問のディレクトリー構成では、メインクラスの名前はパッケージ無しのaになります。
よって、メインクラス指定は<mainClass>a</mainClass>にする必要があります。

また、この構成ではJarプラグインは不要と思います。
Jarプラグイン設定を丸ごと削除して、メインクラス指定はassemblyプラグインの設定に記載します。

<plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.4</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>a</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin>

なお、Mavenをお使いになる際は、標準ディレクトリー構成(下記リンク先参照)に従ったほうがトラブルが少ないと思います。
ご検討ください。

7.1. 標準のディレクトリ構成 - 7. Maven Tips | TECHSCORE(テックスコア)

投稿2015/10/09 17:50

argius

総合スコア9388

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/10/09 20:37 編集

解決しました!ありがとうございます! jarのビルドでパッケージするだけであれば関わっているのはmaven-jar-pluginではなくmaven-assembly-pluginなのですね。 pathの指定を間違えていたのはお恥ずかしい限りです。これでは実行できないわけですね。書き変えたことによってディレクティブの意味が解っていい勉強になりました。Mavenプロジェクトのテンプレートのquick-startを使って作業していたのですが,そちらもメインクラスのパスを間違えて書きたしていたので失敗し,原因を切り分けるために最小限の階層とファイルでビルドが出来るかどうか試していたという経緯があります。これからは教えていただいたディレクトリ構成を守ってやっていこうと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問