Maven编译可执行jar

打包:

第一种情况:独立项目,且无第三方依赖包

这种情况下,我们需要maven的maven-jar-plugin插件来帮我们打包。请在项目pom.xml中的plugin配置处加入如下内

<plugin>

    <artifactId>maven-jar-plugin</artifactId>

    <version>2.3.2</version>

    <configuration>

        <archive>

            <manifest>

                <addClasspath>true</addClasspath>

                <!-- 如果项目带有3rd-party lib,这些依赖将被放入lib文件夹 -->

                <!-- 注意:这个文件夹要随着jar文件一起distribute,否则jar文件运行时将报错 -->

                <classpathPrefix>lib/</classpathPrefix>

                <mainClass>com.yourProjectPackage.YourEntranceClass</mainClass>

            </manifest>

        </archive>

    </configuration>

</plugin>

然后用mvn clean install来编译安装你的项目。命令执行结束后会生成一个jar文件,一个lib文件夹(如果你的项目引用了3rd-party dependencies的话)。双击jar文件,就立刻看到效果了。有界面的项目应该能看到主界面(如果你程序没错的话),没有界面的,应该可以从你机器的java console里看到相关信息,或者项目自身有log输出或具有神奇的效果的,可以直接去检视输出结果。

第二种情况:项目+第三方依赖包

这种情况就无法使用maven-jar-plugin插件来打包了。我们要用另一个插件maven-assembly-plugin。这个插件可以帮助我们灵活的打包我们的项目(不仅打包jar项目,还可以用于ear、war等项目的打包,本文只介绍如何打可执行jar包)。这里,我们使用此插件将我们的source code编译结果以及项目的dependencies打到一起,形成一个jar文件。

下面就是项目的pom.xml中plugin的配置部分:

<plugin>

    <artifactId>maven-assembly-plugin</artifactId>

    <version>2.6</version>

    <configuration>

        <!-- 这个archive以及archive里面的设置很重要,没有这个配置,就无法生成可执行jar文件 -->

        <archive>

            <manifest>

                <mainClass>com.your.package.YourEntranceClass</mainClass>

            </manifest>

        </archive>

        <!-- 这个jar-with-dependencies是这个插件中预置的,不用管它,尽管用就好了 -->

        <!-- 当然,你也可以用自己的descriptor。如何用?自己去查这个插件的文档 -->

        <descriptorRefs>

            <descriptorRef>jar-with-dependencies</descriptorRef>

        </descriptorRefs>

    </configuration>

    <executions>

        <execution>

            <id>make-assembly</id>

            <!-- 这里的phase和goals都是maven的基础概念,不懂的可以去看maven的文档 -->

            <!-- 总之,当你install你的project的时候,是会涵盖package phase和single goal的 -->

            <phase>package</phase>

            <goals>

                <goal>single</goal>

            </goals>

        </execution>

    </executions>

</plugin>

时间: 2024-08-03 23:25:30

Maven编译可执行jar的相关文章

maven 构建可执行jar文件

第一部分:认识jar中的MANIFEST.MF文件 一.MANIFEST.MF文件的基本配置信息: 1.一般属性: Manifest-Version:定义manifest文件的版本 Created-By:定义该文件的生成者,一般是由jar命令行工具生成 Signature-Version:定义jar文件的签名版本(关于jar文件的签名以后详谈) Class-Path:(具体作用在下面讲) 2.应用程序相关属性: Main-Class:定义jar文件的入口类(该类必须是一个可执行的类):定义该属性

Apache Maven 打包可执行jar

在本文的 参考资料 部分,您将发现大量介绍 Maven 的入门教程.本文的 5 个技巧目的是帮助您解决即将出现的一些问题:使用 Maven 管理您的应用程序的生命周期时,将会出现的编程场景. 1. 可执行的 JAR 文件 使用 Maven 构建一个 JAR 文件比较容易:只要定义项目包装为 “jar”,然后执行包装生命周期阶段即可.但是定义一个可执行 JAR 文件却比较麻烦.采取以下步骤可以更高效: 在您定义可执行类的 JAR 的 MANIFEST.MF 文件中定义一个 main 类.(MANI

Maven打包可执行Jar的几种方法

一.无依赖其他任何jar <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <archive> <manifest&g

Vcenter数据采集之maven打包可执行jar血历史

技术点:spring加载xsd过程: http://blog.csdn.net/bluishglc/article/details/7596118 案发背景: 1.一个使用maven管理的普通项目(vcenter-collector :关于Vcenter数据采集) 2.项目主要技术: java + mybatis(基于接口形式)+其他 3.项目中有一个非maven仓库的jar包:vijava(做vcenter数据采集的),在项目中以system方式引用 (该jar放在${project.base

maven打包可执行jar包

创建一个文件夹haha,里面包含三项 Haha.java Main.java pom.xml pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sch

Spring Boot Maven 打包可执行Jar文件!

Maven pom.xml 必须包含 [plain] view plain copy <packaging>jar</packaging> [html] view plain copy <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</ar

Maven打可执行Jar

POM文件中添加如下配置: <build> <finalName>test-jar</finalName> <resources> <resource> <targetPath>${project.build.directory}/classes</targetPath> <directory>src/main/resources</directory> <filtering>true&

maven 打包可执行jar 问题小结

最近项目用到maven,完成后要将项目打包成可执行的jar,在网上搜了很多打包方法,但总有个个别问题在那里 pom配置文件增加下面配置,执行mvn clean package <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configur

maven 构建可执行 jar ,并引入所需所有依赖 jar

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptor