How to build jars from IntelliJ properly?
I have a project that contains a single module, and some dependencies. I'd like to create a jar, in a separate directory, that contains the compiled module. In addition, I'd like to have the dependencies present beside my module.
No matter how I twist IntelliJ's "build jar" process, the output of my module appears empty (besides a META-INF file).
Here's how to build a jar with IntelliJ 10 http://blogs.jetbrains.com/idea/2010/08/quickly-create-jar-artifact/
File -> Project Structure -> Project Settings -> Artifacts -> Click green plus sign -> Jar -> From modules with dependencies...
The above sets the "skeleton" to where the jar will be saved to. To actually build and save it do the following:
Extract to the target Jar
OK
Build | Build Artifact | Build
Try Extracting the .jar file from
ProjectName | out | artifacts | ProjectName_jar | ProjectName.jar
This is still an issue in 2017, I hope it will help somebody out there! I found 2 possibilities to create working jar-s under IntelliJ 2017.2
1. Creating artifact from IntelliJ:
- Go to project structure:
- Create a new artifact:
- Select the main class, and be sure to change the manifest folder:
You have to change manifest directory:
<project folder>\src\main\java
replace "java" with "resources"
<project folder>\src\main\resources
This is how it should look like:
Then you choose the dependencies what you want to be packed IN your jar, or NEAR your jar file
To build your artifact go to build artifacts and choose "rebuild". It will create an "out" folder with your jar file and its dependencies.
2. Using maven-assembly-plugin
Add build section to the pom file
<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>
- Create a new run/debug configuration:
- Choose application:
- Fill in the form
- Add the "assembly:single" maven goal after build to be executed last
- Save it, then run
This procedure will create the jar file under the "target" folder
I recently had this problem and think these steps are easy to follow if any prior solution or link is missing detail.
How to create a .jar
using IntelliJ IDEA 14.1.5:
- File > Save All.
- Run driver or class with main method.
- File > Project Structure.
- Select Tab "Artifacts".
- Click green plus button near top of window.
- Select JAR from Add drop down menu. Select "From modules with dependencies"
- Select main class.
- The radio button should be selecting "extract to the target JAR." Press OK.
- Check the box "Build on make"
- Press apply and OK.
- From the main menu, select the build dropdown.
- Select the option build artifacts.
For those that benefit from images as I do:
File -> Project Structure