zoukankan      html  css  js  c++  java
  • eclipse maven .jar中没有主清单属性

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

    E:My_javamysql	arget>java -jar original-mysql-0.0.1-SNAPSHOT.jar
    original-mysql-0.0.1-SNAPSHOT.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.1</version>
    </dependency>

    三.在POM文件加入build项

    <build>
      <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.2.1</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.0</modelVersion>
    
    <!-- 反写的公司网址+项目名 -->
      <groupId>org.feilong</groupId>
      
      <!-- 项目名 + 模块名 -->
      <artifactId>mysql</artifactId>
      
      <!-- 版本号   SNAPSHOT 快照; alpha 内部测试; beta 公测; release 稳定 ga 正式版本-->
      <version>0.0.1-SNAPSHOT</version>
      
      <!-- 打包方式 例如 war zip pom-->
      <packaging>jar</packaging>
    
    <!-- 项目描述名 -->
      <name>mysql</name>
      
      <!-- 项目地址 -->
      <url>http://maven.apache.org</url>
    <!-- description  项目描述 -->
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
    
    <!-- 依赖列表 -->
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          
          <!-- 依赖范围, 表名 junit 只在test时有用-->
          <scope>test</scope>
         <!-- <optional>设置依赖是否可选</optional> -->
         <!-- exlusions   -->
        </dependency>
        
        <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.15</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.14</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.1</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.1</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_javamysql	arget>java -jar mysql-0.0.1-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.
    四月 01, 2019 9:13:32 下午 com.alibaba.druid.pool.DruidDataSource info
    信息: {dataSource-1} inited
    create success
    1, 24, 女
    2, 50, 女
    3, 76, 女
  • 相关阅读:
    数据绑定控件的上下文Container dodo
    jquery的调试利器:Firebug使用详解 dodo
    Scrum中的角色 dodo
    jquery easyui datagrid的增加,修改,删除 dodo
    计划扑克(Planning Poker) dodo
    windows2003 IIS 服务启动失败,提示‘另一个程序正在使用此文件,进程无法访问',解决方法 dodo
    控件包含代码块(即 <% ... %>),因此无法修改控件集合 dodo
    AppendFormat System.FormatException: 输入字符串的格式不正确 dodo
    Scrum中的燃烧曲线(Burndown Chart) dodo
    在类中获取、使用当前页面 Page 对象的引用 dodo
  • 原文地址:https://www.cnblogs.com/jiangfeilong/p/10638974.html
Copyright © 2011-2022 走看看