使用如下命令打了一个Maven可执行Jar包,被告知没有主清单属性:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.handlers</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.schemas</resource> </transformer> </transformers> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> </configuration> </execution> </executions> </plugin>
其原因是没有加入mainclass的transformer,加上重新执行mvn clean install -DskipTests生成的Jar包即可。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.handlers</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.schemas</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.chuanliu.c11.bootstrap.C11SearcherBootStrap</mainClass> </transformer> </transformers> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> </configuration> </execution> </executions> </plugin>
相关推荐
在Java开发过程中,将项目打包成可执行的jar文件是一项常见的任务,这使得代码可以方便地在不同环境中部署和运行。然而,有时在打包过程中可能会遇到一些错误,比如"没有主清单属性"。这个错误表明jar文件缺少了必要...
Maven 项目生成 jar 运行时提示“没有主清单属性”详解 Maven 项目生成 jar 运行时提示“没有主清单属性”是一个常见的问题,特别是在使用 Maven 打包 jar 文件时。今天,我们将详细介绍这个问题的解决方案。 什么...
该插件能够帮助开发者正确地构建包含必要主清单属性的可执行jar文件。具体来说,Spring Boot Maven插件会在构建过程中向MANIFEST.MF文件添加以下关键属性: - `Main-Class`: 指定jar包的入口程序,对于Spring Boot...
Maven打包jar包没有主属性问题解决方案 Maven是一款流行的Java项目构建工具,广泛应用于大多数Java项目的构建和管理中。然而,在使用Maven进行项目构建时,经常会遇到一些问题,例如,Maven打包jar包没有主属性的...
可执行JAR(Java Archive)文件是Java编程语言中的一种打包格式,用于集合多个类文件、资源和其他相关文件,形成一个单一的可分发单元。它不仅方便了代码的组织和传输,还允许我们直接运行Java应用程序,无需显式...
3. **执行JAR文件**: - `java -jar jarfilename`命令可以运行包含主类信息的JAR文件。 - 如果JAR内没有主类或者需要动态指定主类,可以使用`java -cp jarfilename MainClassName`。 4. **Web应用中的JAR包**: ...
在IT行业中,开发Java应用程序时,常常需要将项目打包成可执行的JAR(Java Archive)文件,以便在没有开发环境的机器上运行。对于基于JFinal的Web应用,这个过程可能会遇到一些挑战,因为JFinal是轻量级的Java Web...
另外,`-C`参数在创建和更新JAR包时可以用来切换到指定目录下执行jar命令,不过在示例中并没有使用。 最终,生成JAR包后,可以通过Java命令来运行JAR文件。假设清单文件中定义了主类,可以简单地使用命令:`java -...
在 Spring Boot 项目中,经常会出现 jar 主清单属性丢失的问题,这个问题会导致项目无法正常运行。本文将详细介绍解决这个问题的方案,并对相关的知识点进行详细的解释。 依赖 Spring Boot 的父项目 在解决 jar 主...
主清单属性(Main-Class)是Java可执行jar文件的关键部分,它指定了应用程序的入口点。在Spring Boot中,这个属性通常由`spring-boot-maven-plugin`插件自动生成并添加到MANIFEST.MF文件中。下面我们将详细探讨这个...
`<manifest>`部分用于添加`JAR`的清单文件,`Main-Class`属性指定了程序的主类,使得`JAR`可以作为可执行文件运行。 在实际项目中,可能还需要其他任务,比如清理(`clean`)构建输出,或者进行单元测试(`junit`)...
提供的demo是一个实际的可执行JAR项目,可以用来学习和理解如何构造和运行这样的程序。通过分析和运行这个示例,开发者能够更好地理解如何将Java应用打包成可执行文件。 7. **注意事项**: - 确保JAR文件中的所有...
通过设置构建路径并指定主类,可以生成包含所有依赖的可执行JAR。 3. **运行JAR文件** 使用`java -jar`命令可以执行包含主类的JAR文件,例如:`java -jar myapp.jar`。如果JAR文件包含 Manifest 文件且指定了Main-...
在软件开发过程中,经常需要将多个JAR包合并成一个JAR包,以方便管理和部署。本文将详细介绍如何实现这一过程,并提供具体的操作步骤和技术细节。 ### 一、概述 在Java开发中,项目通常会依赖多个外部库或模块,...
Java编程语言以其跨平台的特性深受开发者喜爱,但有时我们需要将Java程序打包成可执行的文件,以便在没有Java环境的计算机上运行。本主题主要关注如何将Java项目打包成JAR(Java Archive)文件以及进一步转换为EXE...
总结起来,fatjar是Java开发者的一个实用工具,它简化了将Java项目打包为可执行JAR的过程,使得应用程序的分发和运行更加便捷。了解并掌握fatjar的使用,能提高开发效率,特别是对于那些希望快速部署和分享Java小...
在Java编程环境中,生成可执行JAR(Java Archive)文件是一项常见的任务,它允许我们将类文件、资源和其他依赖项打包成一个独立的可执行文件。这样,用户无需安装Java环境,只需双击JAR文件即可运行程序。以下是生成...
- **执行入口**:Java命令行可以通过指定JAR的Main-Class属性来执行JAR内的主程序。 2. **创建JAR文件**: - 使用`jar`命令行工具,如`jar cf jarfilename.jar ClassFilesDir`。 - 使用IDE集成功能,如Eclipse的...
下面我们将详细探讨如何按照标题“以包创建可执行JAR1”的描述,完成这个过程。 首先,我们需要理解Java项目的基本结构。在Java中,我们通常使用包(package)来组织源代码,以便于管理类和防止命名冲突。例如,...