1. 程式人生 > >【spring cloud】【IDEA】【Maven】spring cloud多模組打包,打包的jar包只有幾k,jar包無法執行,執行報錯:no main manifest attribute, in /ms-eureka.jar

【spring cloud】【IDEA】【Maven】spring cloud多模組打包,打包的jar包只有幾k,jar包無法執行,執行報錯:no main manifest attribute, in /ms-eureka.jar

========================================================================================

引申:maven打包多模組spring cloud服務報錯 程式包XXX不存在 : https://www.cnblogs.com/sxdcgaq8080/p/10117852.html

 

========================================================================================

 

spring cloud多模組打包,打包的jar包只有幾k,jar包無法執行,執行報錯:no main manifest attribute, in /ms-eureka.jar

 

原因,需要在子module模組的pom.xml檔案中新增外掛依賴:

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--
指定該Main Class為全域性的唯一入口 --> <mainClass>com.swapping.springcloud.ms.eureka.SpringcloudMsEurekaApplication</mainClass> <layout>ZIP</layout> </configuration> <executions> <
execution> <goals> <goal>repackage</goal><!--可以把依賴的包都打包到生成的Jar包中--> </goals> </execution> </executions> </plugin> </plugins> </build>

 

而父級的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: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>com.swapping</groupId>
    <artifactId>springcloud</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <!--
    注意 最後打包 最外層的pom 需要更改為 pom而不是jar
    <packaging>jar</packaging>
    -->
    <packaging>pom</packaging>

    <name>springcloud</name>
    <description>Demo project for Spring cloud</description>

    <modules>
        <module>springcloud-ms-core</module>
        <module>springcloud-ms-eureka</module>
        <module>springcloud-ms-gateway</module>
        <module>springcloud-ms-hystrix-turbine</module>
        <module>springcloud-ms-sleuth-zipkin</module>
        <module>tx-manager</module>

        <module>springcloud-ms-member</module>
        <module>springcloud-ms-goods</module>
        <module>springcloud-ms-integral</module>
        <module>springcloud-ms-test</module>
    </modules>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
        <relativePath/>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-boot.version>2.0.4.RELEASE</spring-boot.version>
        <spring-cloud.version>Finchley.SR1</spring-cloud.version>
        <lcn.last.version>4.2.1</lcn.last.version>
    </properties>

    <dependencies>

        <!--========================spring boot 2.x 基礎依賴  start ==============================-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--熔斷器 健康檢查-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--========================spring boot 基礎依賴  end ==============================-->



        <!--最外層 主專案 新增spring cloud依賴 start -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <!--熔斷器 Dashboard-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
        </dependency>

        <!-- zipkin 支援 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
        </dependency>
        <!--最外層 主專案 新增spring cloud依賴 end -->





        <!-- ========================LCN 分散式事務 start============================-->
        <dependency>
            <groupId>com.codingapi</groupId>
            <artifactId>transaction-springcloud</artifactId>
            <version>${lcn.last.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.codingapi</groupId>
            <artifactId>tx-plugins-db</artifactId>
            <version>${lcn.last.version}</version>
            <exclusions>

                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- ========================LCN 分散式事務 END============================-->











        <!-- ======================== redis start ======================== -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <!-- ======================== redis end ======================== -->


    </dependencies>

    <dependencyManagement>
        <dependencies>
            <!-- Spring Boot-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- Spring Cloud -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
    
    </build>


</project>
View Code

 

這樣打包即可解決!!!