Table of Contents
1. General jar (cannot Run )
Method 1: Command line method
Method 2: Mouse operation
2. Executable Jar
Method 1: SpringBoot framework (depending on the jar)
Method 2: Dependency package and project package Separation (depending on the external directory lib)
3. Scala project packaging
The first step: add
to the build>plugins of pom.xml The second step: Console execution
4 . Groovy project packaging
The first step: Add
to the build>plugins of pom.xmlThe second step: Console execution
Home Java javaTutorial What is the method for packaging jar in Maven project in Java?

What is the method for packaging jar in Maven project in Java?

Apr 29, 2023 pm 06:31 PM
java jar maven

Maven packaging can generally generate two types of packages: one is a package that can be run directly, and the other is a dependent package (just a compiled package). Maven packages jar by default, if you need to modify other types. You can modify pom.xml

<packaging>jar/ear/ejb</packaging>

The plug-ins introduced by default in the Maven project:

What is the method for packaging jar in Maven project in Java?

1. General jar (cannot Run )

The generated jar is just a compiled package and does not package dependent jar packages. It can be seen from the compilation log of the console that the maven-jar-plugin:2.4 plug-in is used.

Java compilation plug-in, you can set the jdk version, etc. (If you don’t set it, use the default, you don’t need to set it

<!-- java编译插件 -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

Method 1: Command line method

Console execution mvn clean package

Method 2: Mouse operation

             Maven->Plugins->clean->package  

2. Executable Jar

This kind of generated jar can generally be run directly through java -jar.

Method 1: SpringBoot framework (depending on the jar)

This method is to use the spring-boot-maven-plugin plugin for packaging.

What is the method for packaging jar in Maven project in Java?

The first step: add

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>2.4.0</version>
    <configuration>
        <fork>true</fork>
        <!--指定启动的入口,可以省略,springboot会自动查找启动类-->
        <mainClass>com.lx.buildjarpackage.BuildJarPackageApp</mainClass>
    </configuration>
</plugin>
to pom.xml

Second step: Console execution

mvn clean package spring-boot:repackage

Note: If parent (optional) is specified in the current pom file

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.0</version>
</parent>

The console command only needs to be executed

mvn clean package

What is the method for packaging jar in Maven project in Java?

Method 2: Dependency package and project package Separation (depending on the external directory lib)

Output the dependent JAR package to the lib directory (the packaging method is common for JAVA projects). This method requires the introduction of the maven-jar-plugin plug-in .

The first step: Add pom.xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <classpathPrefix>lib/</classpathPrefix>
                <mainClass>com.lx.buildjarpackage.BuildJarPackageApp</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>

The second step: Console execution

mvn clean dependency :copy-dependencies -DoutputDirectory=target/lib package

Note: If we want to simplify the console execution command, we can add plug-in configuration

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>copy</id>
            <phase>package</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/lib</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

and then console execution

mvn clean package

What is the method for packaging jar in Maven project in Java?

Method 3: Dependent packages and projects in one jar (non-springboot project)

This method uses the maven-assembly-plugin plug-in, but This method does not copy the dependent jar to the final jar, but copies the class file that depends on the jar to the final jar. Therefore, some resource files will be lost in this method, so the springboot project will fail to start.

First step: Add pom.xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.5.5</version>
    <configuration>
        <archive>
            <manifest>
                <mainClass>com.lx.buildjarpackage.BuildJarPackageApp</mainClass>
            </manifest>
        </archive>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
</plugin>

Second step: Console execution

mvn clean assembly:single

Or operate the maven project with the mouse (right column)->Select Plugins->Select assembly->Click assembly:assembly

What is the method for packaging jar in Maven project in Java?

Summary: It can only be used for springboot projects Method 1 and 2 can start normally.

3. Scala project packaging

The first step: add

<plugin>
    <groupId>org.scala-tools</groupId>
    <artifactId>maven-scala-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>compile</goal>
                    <goal>testCompile</goal>
                </goals>
        </execution>
    </executions>
    <configuration>
        <scalaVersion>${scala.version}</scalaVersion>
        <args>
            <arg>-target:jvm-1.5</arg>
        </args>
    </configuration>
</plugin>

to the build>plugins of pom.xml The second step: Console execution

maven clean package

or mouse execution maven project (right column)->Select Lifecycle->Click package or install package

4 . Groovy project packaging

The first step: Add

<plugin>
    <groupId>org.codehaus.gmavenplus</groupId>
    <artifactId>gmavenplus-plugin</artifactId>
    <version>1.2</version>
    <executions>
        <execution>
            <goals>
                <goal>addSources</goal>
                <goal>addStubSources</goal>
                <goal>compile</goal>
                <goal>execute</goal>
            </goals>
        </execution>
    </executions>
</plugin>

to the build>plugins of pom.xmlThe second step: Console execution

maven clean package

Or execute maven project with the mouse (right column)->Select Lifecycle->Click package or install to package

The above is the detailed content of What is the method for packaging jar in Maven project in Java?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

PHP Tutorial
1505
276
Comparing Java Frameworks: Spring Boot vs Quarkus vs Micronaut Comparing Java Frameworks: Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

Pre-formanceTartuptimeMoryusage, Quarkusandmicronautleadduetocompile-Timeprocessingandgraalvsupport, Withquarkusoftenperforminglightbetterine ServerLess scenarios.2.Thyvelopecosyste,

Volume keys on keyboard not working Volume keys on keyboard not working Aug 05, 2025 pm 01:54 PM

First,checkiftheFnkeysettingisinterferingbytryingboththevolumekeyaloneandFn volumekey,thentoggleFnLockwithFn Escifavailable.2.EnterBIOS/UEFIduringbootandenablefunctionkeysordisableHotkeyModetoensurevolumekeysarerecognized.3.Updateorreinstallaudiodriv

edge pdf viewer not working edge pdf viewer not working Aug 07, 2025 pm 04:36 PM

TestthePDFinanotherapptodetermineiftheissueiswiththefileorEdge.2.Enablethebuilt-inPDFviewerbyturningoff"AlwaysopenPDFfilesexternally"and"DownloadPDFfiles"inEdgesettings.3.Clearbrowsingdataincludingcookiesandcachedfilestoresolveren

python logging to file example python logging to file example Aug 04, 2025 pm 01:37 PM

Python's logging module can write logs to files through FileHandler. First, call the basicConfig configuration file processor and format, such as setting the level to INFO, using FileHandler to write app.log; secondly, add StreamHandler to achieve output to the console at the same time; Advanced scenarios can use TimedRotatingFileHandler to divide logs by time, for example, setting when='midnight' to generate new files every day and keep 7 days of backup, and make sure that the log directory exists; it is recommended to use getLogger(__name__) to create named loggers, and produce

How to join an array of strings in Java? How to join an array of strings in Java? Aug 04, 2025 pm 12:55 PM

Using String.join() (Java8) is the easiest recommended method for connecting string arrays, just specify the separator directly; 2. For old versions of Java or when more control is needed, you can use StringBuilder to manually traverse and splice; 3. StringJoiner is suitable for scenarios that require more flexible formats such as prefixes and suffixes; 4. Using Arrays.stream() combined with Collectors.joining() is suitable for filtering or converting the array before joining; To sum up, if Java8 and above is used, the String.join() method should be preferred in most cases, which is concise and easy to read, but for complex logic, it is recommended.

python pandas styling dataframe example python pandas styling dataframe example Aug 04, 2025 pm 01:43 PM

Using PandasStyling in JupyterNotebook can achieve the beautiful display of DataFrame. 1. Use highlight_max and highlight_min to highlight the maximum value (green) and minimum value (red) of each column; 2. Add gradient background color (such as Blues or Reds) to the numeric column through background_gradient to visually display the data size; 3. Custom function color_score combined with applymap to set text colors for different fractional intervals (≥90 green, 80~89 orange, 60~79 red,

Computed properties vs methods in Vue Computed properties vs methods in Vue Aug 05, 2025 am 05:21 AM

Computed has a cache, and multiple accesses are not recalculated when the dependency remains unchanged, while methods are executed every time they are called; 2.computed is suitable for calculations based on responsive data. Methods are suitable for scenarios where parameters are required or frequent calls but the result does not depend on responsive data; 3.computed supports getters and setters, which can realize two-way synchronization of data, but methods are not supported; 4. Summary: Use computed first to improve performance, and use methods when passing parameters, performing operations or avoiding cache, following the principle of "if you can use computed, you don't use methods".

python check if path is directory example python check if path is directory example Aug 04, 2025 pm 02:12 PM

The most common method is to use os.path.isdir() or pathlib.Path.is_dir(). 1. Use os.path.isdir():importos, path="/path/to/your/directory", ifos.path.isdir(path):print("This is a directory")else:print("This is not a directory or path does not exist"). 2. Use pathlib.Path.is_dir() (recommended): frompathlibimportP

See all articles