私は単一のモジュールといくつかの依存関係を含むプロジェクトを持っています。コンパイルされたモジュールを含むjarを別のディレクトリに作成したいのですが。さらに、私のモジュールの横に依存関係があることを望みます。
どのようにIntelliJの "build jar"プロセスをひねっても、私のモジュールの出力は(META-INFファイルを除いて)空に見えます。
IntelliJ 10でjarを作成する方法は次のとおりです。 http://blogs.jetbrains.com/idea/2010/08/quickly-create-jar-artifact/
「ファイル」 - >「プロジェクト構造」 - >「プロジェクト設定」 - >「成果物」 - >緑色のプラス記号をクリック - >「ジャー」 - >「依存関係を持つモジュールから」.
上記は "スケルトン"をjarが保存される場所に設定します。実際にビルドして保存するには、次のようにします。
目的のJarに抽出する
OK
ビルド|アーティファクトを構築
これは2017年にまだ問題です、それがそこに誰かを助けるのを願っています! IntelliJ 2017.2の下で作業jarファイルを作成する2つの可能性を見つけました
1. IntelliJからアーティファクトを作成します。
マニフェストディレクトリを変更する必要があります。
<project folder>\src\main\Java
「Java」を「resources」に置き換えます。
<project folder>\src\main\resources
これは次のようになるはずです。
それからあなたはあなたがあなたのjarファイルに詰め込みたいもの、またはあなたのjarファイルの近くに依存関係を選択します
あなたのアーティファクトを構築するには、アーティファクトを構築して「再構築」を選択します。それはあなたのjarファイルとその依存関係で "out"フォルダを作成します。
2. maven-Assembly-pluginを使う
Pomファイルにビルドセクションを追加する
<build>
<plugins>
<plugin>
<artifactId>maven-Assembly-plugin</artifactId>
<configuration>
<finalName>ServiceCreate</finalName>
<appendAssemblyId>false</appendAssemblyId>
<archive>
<manifest>
<mainClass>com.svt.optimoo.App</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
この手順では、 "target"フォルダの下にjarファイルが作成されます。
私は最近この問題を抱えており、以前の解決策やリンクに詳細が欠けている場合、これらのステップは従うのが簡単だと思います。
IntelliJ IDEAを使用して.jar
を作成する方法14.1.5:
以下はMavenプロジェクトの2つの例です。
pom.xmlにmaven-jar-pluginを追加します。
<plugin>
<!-- Build an executable JAR -->
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>somePackage.sample</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
画面キャプチャ: 4.検索アイコンをクリックしてmavenプロジェクトボックスを開き、mavenと入力します。
MANIFEST.MFはリソースフォルダにあり、Main.Classは{package} - {class-name-that-contains-main-class}を参照する必要があります。
それはおそらく少し遅くなりますが、私はこの方法でそれを解決することができました - > winrarで開いてMETA-INFフォルダ内のECLIPSEF.RSAとECLIPSEF.SFを削除して、さらに "Main-class:main_class_name"( ".class"なしで) MANIFEST.MFに。最後の行の後に「Enter」を2回押したことを確認してください。そうしないと機能しません。
アイデア8.1.3
'output'ディレクトリ(project/out/production //)にコンパイル済みの出力があるのでJarは問題ありません。
私は、jarを作る前に 'make'を実行しなければならないと思います
依存関係のためには、単に "show library"をチェックして欲しいものを選んでください。
Mavenでは、このプラグインを使うことができます。
<build>
<plugins>
<plugin>
<artifactId>maven-Assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>[path you class main]</mainClass>
</manifest>
</archive>
<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>
私の問題はこれでした:私はIntellij IDEA(異なるバージョンを試しました)+ Gradleを使いました。上記の応答に示されているように、プロジェクトをコンパイルしてartifacf jarをビルドしたときに、 "no main manifest attrubute ..."というエラーが表示されました。
この解決策は私のために働きました(TipについてThilina Ashen Gamage(上記参照)に感謝します):
抜粋 - 外部ライブラリを使用し、 プロジェクト設定 - 成果物 - 追加(+) - Jar - 依存関係を持つモジュールから を使用してプロジェクトをビルドする場合、おそらくプログラムバグのためMANIFEST_MFファイルのMETA-INFフォルダーjarファイルに含めないでください。それを避けるために _ empty _ jarファイルを作成してください。
プロジェクト設定 - 案件 - 追加(+) - jar - EMPTY JAR 。 META-INFフォルダは resources フォルダに追加されます。それからあなたのメインクラスを選択してください。あなたは次のjar構造を見るでしょう: META-INFフォルダの存在に注意してください。その後、プロジェクトをビルドして成果物をビルドできます。このソリューションは、javaFXアプリケーションにも機能しました。
これが IntelliJ IDEA 2018.3 Help の公式な回答です。私は試してみましたそれは働きました。
モジュールからJARファイルを作成する。
メインメニューで、[ビルド] | [ビルド]を選択します。アーティファクトを構築します。
ドロップダウンリストから、JARタイプの目的のアーティファクトを選択します。 リストには、現在のプロジェクトに対して構成されているすべての成果物が表示されます。設定したすべてのアーティファクトを構築するには、[Build all artifacts]オプションを選択します。
Kotlinを使ってjarファイルを作成しようとしている場合は、src/main/Java
フォルダを作成し、このフォルダをMETA-INFフォルダの場所として使用する必要があります。
私が使用するとき これらの解決策 /このエラー
Java -jar xxxxx.jar
xxxxx.jarには、メインのマニフェスト属性はありません
そして解は :
マニフェストディレクトリを変更する必要があります。
<project folder>\src\main\Java
javaをリソースに変える
<project folder>\src\main\resources
IntelliJ IDEAプロジェクトをMavenプロジェクトから再インポートするとすぐに、すべての変更が失われるため、他の回答の中には役に立たないものがあります。
Jarの構築は、プロジェクト設定ではなく、実行/デバッグ構成によって引き起こされる必要があります。
Jetbrainsは、あなたがここでこれをどのように達成することができるかについての良い説明を持っています:
https://www.jetbrains.com/help/idea/maven.html
「Mavenの目標に対するトリガーの設定」というセクションまでスクロールします。
(彼らの説明の唯一の欠点は、彼らのスクリーンショットが超素晴らしいdarculaテーマではなく、デフォルトの白黒配色になっていることです。
したがって、基本的には、「Maven Projects」パネルを開くと、関心のあるプロジェクト(この場合はjarを作成するプロジェクト)がその下に表示され、実行したいMaven目標が見つかります。 (通常は「パッケージ」の目的でjarファイルが作成されます)、コンテキストメニューを開き(Windowsマシンでは右クリック)、[実行前に実行/デバッグ...]オプションを選択できます。選択してください、そして、それはそこから手であなたを連れて行きます。本当に簡単です。
あなたはMaven( http://maven.Apache.org )を見たいと思うかもしれません。アプリケーションのメインビルドプロセスとして使用することも、[設定の編集]ダイアログで特定のタスクを実行するためだけに使用することもできます。 Maven内でモジュールのJARを作成するプロセスは、すべての依存関係も自明な自己実行可能JARに含めたい場合は、かなり簡単です。
これまでにMavenを使ったことがない場合は、 Mavenを使用したビルドの改善 を参照してください。
もしあなたがspring/mvnプロジェクトに取り組んでいるなら、このコマンドを使うことができます。
mvn package -DskipTests
Jarファイルはtarget directoyに保存されます。
プロジェクトでサードパーティのライブラリを使用している場合、またはMANIFEST.MFファイルの作成に問題がある場合は、を使用して生成されたJARファイルを実行するときに競合が発生する可能性があります。
File > Project Structure > Artifacts > '+' > JAR > From modules with dependencies > .....
上記の方法。
代わりに、空のJARを作成し、他のすべての要素を手動で出力ルートに追加することをお勧めします。この方法についての素晴らしいブログ記事はここで見つけることができます: http://karthicraghupathi.com/2016/07/10/creating-an-executable-jar-in-intellij-idea/ /私はそこに述べられたステップを試みましたそして私のためにすべてがうまくいった!