web-dev-qa-db-ja.com

メインクラスなしでJARライブラリを作成する

今日Java Libraryを作成しました。IntelliJIDEA 14から追加を求められたため、Mainクラスを使用して作成しました。ただし、メインクラスのない通常のライブラリである場合メインメソッドを持つ単一のクラスがなくても、そのようなプロジェクトからjarファイルを作成することはできますか?できる場合、そのようなjarをどのように作成しますか。

あなたがそれを決して使用しないのであれば、メインメソッドを持つことはちょっとばかげているように思えます。

17
Thibstars

コマンドライン、IDE、Maven、その他のビルドツールなど、いくつかの方法で実行できます。2つの方法について説明します。

コマンドライン:

コマンドラインからIDEなしでjarファイルを作成できます。ここに参照があります: https://docs.Oracle.com/javase/tutorial/deployment/jar/build.html

_jar cf jar-file input-file(s)
_

ここで、_jar-file_は必要な.jarファイル名であり、input-file(s)はライブラリ内に配置するファイルです(たとえば、_*.class_などのワイルドカードを使用できます)。

Intellij Idea:

この記事のようにアーティファクトを作成しますが、メインクラスは指定しません http://blog.jetbrains.com/idea/2010/08/quickly-create-jar-artifact/

次に、[ビルド]> [ビルドアーティファクト]> [ビルド]をクリックします。

これは、Mainクラスがなくても機能します。

2
dey

ShavenプラグインでMaven(IDE依存関係はありませんが、IDEから便利です)から呼び出すことができます)のビルドツールを使用して、「uber」JAR(必要なすべての依存関係をプロジェクトの1つの最終JARに含めます)...

「pom.xml」

...

  <plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>2.3</version>
    <executions>
       <!-- Run shade goal on package phase -->
      <execution>
        <phase>package</phase>
        <goals>
          <goal>shade</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

Shadeプラグインのドキュメント:

https://maven.Apache.org/plugins/maven-shade-plugin/

4
Darrell Teague