eclipse maven .jar中没有主清单属性

时间:2023-03-10 01:37:42
eclipse maven  .jar中没有主清单属性

报错环境: windows系统eclipse maven 打包jar包后, 运行 java -jar 报错

E:\My_java\mysql\target>java -jar original-mysql-0.0.-SNAPSHOT.jar
original-mysql-0.0.-SNAPSHOT.jar中没有主清单属性

解决方法

一.项目目录

eclipse maven  .jar中没有主清单属性

二. 首先在POM.XML 文件加入你用来打包的jar包的依赖,这里用shade

<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-shade-plugin -->
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.</version>
</dependency>

三.在POM文件加入build项

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.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.feilong.mysql.SelectTest</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

四. 完整POM.XML配置文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.</modelVersion> <!-- 反写的公司网址+项目名 -->
<groupId>org.feilong</groupId> <!-- 项目名 + 模块名 -->
<artifactId>mysql</artifactId> <!-- 版本号 SNAPSHOT 快照; alpha 内部测试; beta 公测; release 稳定 ga 正式版本-->
<version>0.0.-SNAPSHOT</version> <!-- 打包方式 例如 war zip pom-->
<packaging>jar</packaging> <!-- 项目描述名 -->
<name>mysql</name> <!-- 项目地址 -->
<url>http://maven.apache.org</url>
<!-- description 项目描述 -->
<properties>
<project.build.sourceEncoding>UTF-</project.build.sourceEncoding>
</properties> <!-- 依赖列表 -->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.</version> <!-- 依赖范围, 表名 junit 只在test时有用-->
<scope>test</scope>
<!-- <optional>设置依赖是否可选</optional> -->
<!-- exlusions -->
</dependency> <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.</version>
</dependency> <dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.3</version>
</dependency> <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.</version>
</dependency> <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-shade-plugin -->
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.</version>
</dependency> </dependencies>
<!-- <dependencyManagement></dependencyManagement> 依赖管理--> <!--<build>
插件
<plugins>
<plugin>
</plugin>
</plugins>
<directory>target</directory>
<outputDirectory>target/classes</outputDirectory>
<finalName>${artifactId}-${version}</finalName>
<testOutputDirectory>target/test-classes</testOutputDirectory>
<sourceDirectory>src/main/java</sourceDirectory>
<scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/resources</directory>
</testResource>
</testResources>
</build> -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.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.feilong.mysql.SelectTest</mainClass> //这里不要写成SelectTest.java
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build> </project>

成功运行

E:\My_java\mysql\target>java -jar mysql-0.0.-SNAPSHOT.jar
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
四月 , :: 下午 com.alibaba.druid.pool.DruidDataSource info
信息: {dataSource-} inited
create success
, , 女
, , 女
, , 女