`
kanpiaoxue
  • 浏览: 1781666 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

maven创建可执行jar(Executable JAR)

 
阅读更多

使用maven创建可执行的jar。

插件:maven-shade-plugin,它可以让用户配置Main-Class的值,然后在打包的时候将值填入/META-INF/MANIFEST.MF文件。关于项目的依赖,它很聪明地将依赖JAR文件全部解压后,再将得到的.class文件连同当前项目的.class文件一起合并到最终的CLI包中,这样,在执行CLI JAR文件的时候,所有需要的类就都在Classpath中了。

maven-shade-plugin 插件的地址: http://maven.apache.org/plugins/maven-shade-plugin/

Executable JAR的例子: http://maven.apache.org/plugins/maven-shade-plugin/examples/executable-jar.html

例子的XML:

To create an executable uber JAR, one simply needs to set the main class that serves as the application entry point:

<project>
  ...
  <build>
    <!-- 指定最终package的jar的名称 -->
    <finalName>mysql-backup</finalName>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>2.2</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <mainClass>org.sonatype.haven.HavenCli</mainClass>
                </transformer>
              </transformers>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  ...
</project>

 

This snippet configures a special resource transformer which sets the Main-Class entry in the MANIFEST.MF of the shaded JAR. Other entries can be added to the MANIFEST.MF as well via key-value pairs in the <manifestEntries> section:

<project>
  ...
  <build>
    <!-- 指定最终package的jar的名称 -->
    <finalName>mysql-backup</finalName>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>2.2</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <manifestEntries>
                    <Main-Class>org.sonatype.haven.ExodusCli</Main-Class>
                    <Build-Number>123</Build-Number>
                  </manifestEntries>
                </transformer>
              </transformers>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  ...
</project>

 

 

 

分享到:
评论

相关推荐

    maven-executable-jar-skeleton:一个简单的自执行jar的骨架项目

    Maven可执行罐子骨架 具有执行权限的简单的自可执行jar的骨架项目。 自定义可执行jar 编辑pom.xml文件以添加依赖项并自定义内部版本和应用程序名称。 将资源和资源添加到sur src/main/java目录中。 生成可执行jar ...

    maven生成可执行exe文件

    在该文件中,我们需要添加用于创建可执行文件的插件。一个常用的插件是`exec-maven-plugin`,它允许我们指定主类并生成可执行文件。 2. **添加插件依赖** 在`pom.xml`文件中的`&lt;build&gt;`部分,添加以下代码来引入`...

    Spring Boot创建可执行jar包的实例教程

    "Spring Boot创建可执行jar包的实例教程" Spring Boot创建可执行jar包是指将 Spring Boot 应用程序打包成一个可以独立运行的jar文件,从而不需要依赖 Tomcat 或其他应用服务器。下面是 Spring Boot 创建可执行jar...

    environments-maven-plugin-0.0.17.zip

    本文将深入探讨一个开源项目——`environments-maven-plugin-0.0.17.zip`,以及其中包含的`gradle-executable-jar-plugin`,这是一个专门用于创建可执行JAR的Gradle插件。这个插件使得开发者能够轻松地构建一个包含...

    Linux下用java -jar运行可执行jar包的方法教程

    在Linux环境下使用Java命令运行可执行jar包的方法,是Java开发人员和系统管理员经常需要掌握的知识。Linux操作系统下,与Windows系统不同的是,环境变量和路径分隔符的使用需要注意,例如在设置CLASSPATH时,Linux...

    可执行文件罐子与示例:生成具有依赖项的可执行jar文件

    以下是创建可执行JAR的基本步骤: 1. **配置pom.xml**:在`&lt;build&gt;`标签内添加`&lt;plugins&gt;`部分,然后引入`maven-assembly-plugin`或`maven-shade-plugin`。这两个插件都可以用于生成包含依赖的可执行JAR。这里我们...

    包含jar开发需要的各种jar包

    JAR文件的使用广泛,可以作为库、应用程序或者可执行文件。以下是对JAR开发和相关知识点的详细解释: 一、JAR文件结构: 1. MANIFEST.MF:每个JAR文件都有一个清单文件,存储关于JAR的基本信息,如主类(Main-Class...

    executable-war-example:示例Maven项目显示了如何使用自定义类加载器使Java WAR文件像JAR一样可执行

    使WAR可执行文件涉及三件事: 使WAR看起来像可执行的JAR 从其他位置加载课程了解所包含的JAR(库) 下面介绍了如何完成此操作。使WAR可执行这是通过技巧完成的。 JAR文件的典型位置没有MANIFEST.MF 。 它包含Main-...

    evosuite的jar,以及安装和使用教程

    6. **集成到构建流程**:为了持续集成,你可以将EvoSuite的执行集成到你的构建工具(如Maven或Gradle)中。这通常涉及到添加插件配置和调用EvoSuite的任务。 7. **理解输出**:EvoSuite会提供详细的测试结果,包括...

    maven+bat打包

    在zip.bat中,可能包含`cd`命令改变当前目录,`copy`命令复制文件,以及`jar`或`zip`命令创建归档文件。 在提供的文件列表中,`pom (2).xml`可能是POM.xml的另一个版本,可能包含了执行bat脚本的配置。请注意,...

    Fat jar打包Java工具

    总的来说,Fat jar打包工具简化了Java项目的部署流程,使得用户可以方便地运行一个包含所有依赖的单一可执行文件,而无需关心类路径的配置。在Eclipse这样的IDE中,通过插件进行打包,可以进一步提高开发效率。

    maven 2.1.0

    1. 在项目根目录下,写一个ant文件,把常用命令列出来 &lt;?xml version="1.0" encoding="GB2312"?&gt; &lt;project name="smice-card_2_0 项目构建过程" ...2. 使用eclipse的ant view,可以看到并执行上面的命令

    Maven权威指南 很精典的学习教程,比ANT更好用

    通过Maven Profiles实现可移植性 11.2.1. 覆盖一个项目对象模型 11.3. 激活Profile 11.3.1. 激活配置 11.3.2. 通过属性缺失激活 11.4. 外部Profile 11.5. Settings Profile 11.5.1. 全局Settings ...

    evosuite-1.0.6的jar包

    1. **易于集成**:EvoSuite可以轻松地与其他构建工具(如Maven和Gradle)集成,只需添加相应的依赖项,即可在项目中使用。 2. **可配置性**:用户可以根据需求调整算法参数,如迭代次数、种群大小等,以优化测试生成...

    net.sf.fjep.fatjar_0.0.32.zip

    FatJar是一款在Java开发领域广泛应用的打包工具,尤其对于那些需要将所有依赖库整合到一个可执行的JAR文件中的项目而言,它显得尤为重要。该工具简化了开发者的工作流程,使得构建独立运行的Java应用程序变得更加...

    Spring boot jar注册windows服务

    首先,你需要一个Spring Boot项目的可执行JAR文件。这通常通过Maven或Gradle的`spring-boot-maven-plugin`或`spring-boot-gradle-plugin`插件生成。JAR文件包含了应用的全部依赖,使得它可以在任何有Java运行环境的...

    使用maven将Java程序打包成exe文件并制作成Windows系统服务之springboot打包(一)项目代码

    要将Spring Boot应用打包成exe文件,我们需要使用两个Maven插件:一个是`spring-boot-maven-plugin`,用于构建可执行的JAR或WAR文件;另一个是`exec-maven-plugin`,它可以将JAR转换为可执行的Windows批处理文件。 ...

    将java 打包成exe 可执行文件

    在Java编程环境中,通常我们编写的程序是以`.jar`(Java Archive)文件的形式存在,它是一种可执行的二进制文件,但默认情况下,用户需要通过Java运行时环境(JRE)来执行这些`.jar`文件。然而,为了提供更方便的...

    hibernate-shards.jar

    GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 ... 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies ...

    Maven:在pre-integration-test阶段依次启动多个进程_Java_下载.zip

    2. 在`&lt;configuration&gt;`标签内,替换`&lt;executable&gt;`为启动进程的实际脚本路径,例如一个启动Java应用的可执行jar文件或者启动脚本。同时,可以使用`&lt;arguments&gt;`来传递启动参数。 3. 如果需要启动多个进程,可以在`...

Global site tag (gtag.js) - Google Analytics