Execution repackage of goal org.springframework.boot:spring-boot-maven-plugin:2.4.0:repackage failed

博客讲述了如何在Spring Boot项目中,解决打包时找不到主类的问题,关键在于移除根POM中不必要的spring-boot-maven-plugin配置,只保留需要生产可执行JAR的子模块。

Spring boot 执行打包操作时候,报错如下


Execution default of goal org.springframework.boot:spring-boot-maven-plugin:XXXX RELEASE:repackage failed: Unable to find main class

根源为,在我的项目场景下,

只有如图的-boot子模块生产可执行JAR包,其他几个模块是不需要可执行的,而我的根POM里,spring boot 默认帮我加入了如下build策略

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


解决方案比较简单,就是把这个spirng boot针对所有模块的build部分移除出来,放到你自己需要打包的那个子模块里,我这里是api-service-boot模块,其他模块不需要生产可执行的jar.
————————————————
版权声明:本文为优快云博主「@Within」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qq_41264674/article/details/106539584

解析下面报错:解析下面报错信息:[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ boot-admin --- [INFO] Building jar: D:\DLTY\FoodChain\food_chain\boot-admin\target\jjj-food-chain-2.8.jar [INFO] [INFO] --- maven-javadoc-plugin:3.4.0:jar (attach-javadocs) @ boot-admin --- [INFO] Skipping javadoc generation [INFO] [INFO] --- spring-boot-maven-plugin:2.3.12.RELEASE:repackage (default) @ boot-admin --- [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary for jjj-food-chain 2.8: [INFO] [INFO] jjj-food-chain ..................................... SUCCESS [ 1.536 s] [INFO] boot-admin ......................................... FAILURE [ 1.571 s] [INFO] config ............................................. SKIPPED [INFO] jjj-common ......................................... SKIPPED [INFO] jjj-admin .......................................... SKIPPED [INFO] jjj-shop ........................................... SKIPPED [INFO] jjj-front .......................................... SKIPPED [INFO] jjj-job ............................................ SKIPPED [INFO] jjj-cashier ........................................ SKIPPED [INFO] bootstrap .......................................... SKIPPED [INFO] generator .......................................... SKIPPED [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3.271 s [INFO] Finished at: 2025-06-24T17:50:19+08:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.3.12.RELEASE:repackage (default) on project boot-admin: Execution default of goal org.spr ingframework.boot:spring-boot-maven-plugin:2.3.12.RELEASE:repackage failed: A required class was missing while executing org.springframework.boot:spring-boot-maven-plugin:2.3.12.RELEASE:repackage: org/apache/commons/logging/LogFactory [ERROR] ----------------------------------------------------- [ERROR] realm = plugin>org.springframework.boot:spring-boot-maven-plugin:2.3.12.RELEASE [ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy [ERROR] urls[0] = file:/D:/Software/CodeEnv/Maven/repository/org/springframework/boot/spring-boot-maven-plugin/2.3.12.RELEASE/spring-boot-maven-plugin-2.3.12.RELEASE.jar [ERROR] urls[1] = file:/D:/Software/CodeEnv/Maven/repository/org/springframework/boot/spring-boot-buildpack-platform/2.3.12.RELEASE/spring-boot-buildpack-platform-2.3.12.RELEASE.jar [ERROR] urls[2] = file:/D:/Software/CodeEnv/Maven/repository/com/fasterxml/jackson/core/jackson-databind/2.11.4/jackson-databind-2.11.4.jar [ERROR] urls[3] = file:/D:/Software/CodeEnv/Maven/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar [ERROR] urls[4] = file:/D:/Software/CodeEnv/Maven/repository/net/java/dev/jna/jna-platform/5.5.0/jna-platform-5.5.0.jar [ERROR] urls[5] = file:/D:/Software/CodeEnv/Maven/repository/net/java/dev/jna/jna/5.5.0/jna-5.5.0.jar [ERROR] urls[6] = file:/D:/Software/CodeEnv/Maven/repository/org/apache/commons/commons-compress/1.19/commons-compress-1.19.jar [ERROR] urls[7] = file:/D:/Software/CodeEnv/Maven/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar [ERROR] urls[8] = file:/D:/Software/CodeEnv/Maven/repository/org/springframework/spring-core/5.2.15.RELEASE/spring-core-5.2.15.RELEASE.jar [ERROR] urls[9] = file:/D:/Software/CodeEnv/Maven/repository/org/springframework/spring-jcl/5.2.15.RELEASE/spring-jcl-5.2.15.RELEASE.jar [ERROR] urls[10] = file:/D:/Software/CodeEnv/Maven/repository/org/springframework/boot/spring-boot-loader-tools/2.3.12.RELEASE/spring-boot-loader-tools-2.3.12.RELEASE.jar [ERROR] urls[11] = file:/D:/Software/CodeEnv/Maven/repository/org/apache/maven/shared/maven-common-artifact-filters/3.1.1/maven-common-artifact-filters-3.1.1.jar [ERROR] urls[12] = file:/D:/Software/CodeEnv/Maven/repository/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar [ERROR] urls[13] = file:/D:/Software/CodeEnv/Maven/repository/org/codehaus/plexus/plexus-interpolation/1.16/plexus-interpolation-1.16.jar [ERROR] urls[14] = file:/D:/Software/CodeEnv/Maven/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar [ERROR] urls[15] = file:/D:/Software/CodeEnv/Maven/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar [ERROR] urls[16] = file:/D:/Software/CodeEnv/Maven/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar [ERROR] urls[17] = file:/D:/Software/CodeEnv/Maven/repository/org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar [ERROR] urls[18] = file:/D:/Software/CodeEnv/Maven/repository/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar [ERROR] urls[19] = file:/D:/Software/CodeEnv/Maven/repository/commons-io/commons-io/2.6/commons-io-2.6.jar [ERROR] urls[20] = file:/D:/Software/CodeEnv/Maven/repository/org/apache/maven/shared/maven-shared-utils/3.3.3/maven-shared-utils-3.3.3.jar [ERROR] urls[21] = file:/D:/Software/CodeEnv/Maven/repository/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar [ERROR] urls[22] = file:/D:/Software/CodeEnv/Maven/repository/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar [ERROR] urls[23] = file:/D:/Software/CodeEnv/Maven/repository/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.4/org.eclipse.sisu.inject-0.3.4.jar [ERROR] urls[24] = file:/D:/Software/CodeEnv/Maven/repository/org/codehaus/plexus/plexus-utils/3.2.1/plexus-utils-3.2.1.jar [ERROR] urls[25] = file:/D:/Software/CodeEnv/Maven/repository/org/sonatype/plexus/plexus-build-api/0.0.7/plexus-build-api-0.0.7.jar [ERROR] urls[26] = file:/D:/Software/CodeEnv/Maven/repository/org/apache/maven/plugins/maven-shade-plugin/3.2.4/maven-shade-plugin-3.2.4.jar [ERROR] urls[27] = file:/D:/Software/CodeEnv/Maven/repository/org/apache/maven/shared/maven-artifact-transfer/0.12.0/maven-artifact-transfer-0.12.0.jar [ERROR] urls[28] = file:/D:/Software/CodeEnv/Maven/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar [ERROR] urls[29] = file:/D:/Software/CodeEnv/Maven/repository/org/ow2/asm/asm/8.0/asm-8.0.jar [ERROR] urls[30] = file:/D:/Software/CodeEnv/Maven/repository/org/ow2/asm/asm-commons/8.0/asm-commons-8.0.jar [ERROR] urls[31] = file:/D:/Software/CodeEnv/Maven/repository/org/ow2/asm/asm-tree/8.0/asm-tree-8.0.jar [ERROR] urls[32] = file:/D:/Software/CodeEnv/Maven/repository/org/ow2/asm/asm-analysis/8.0/asm-analysis-8.0.jar [ERROR] urls[33] = file:/D:/Software/CodeEnv/Maven/repository/org/jdom/jdom2/2.0.6/jdom2-2.0.6.jar [ERROR] urls[34] = file:/D:/Software/CodeEnv/Maven/repository/org/apache/maven/shared/maven-dependency-tree/3.0.1/maven-dependency-tree-3.0.1.jar [ERROR] urls[35] = file:/D:/Software/CodeEnv/Maven/repository/org/vafer/jdependency/2.4.0/jdependency-2.4.0.jar [ERROR] urls[36] = file:/D:/Software/CodeEnv/Maven/repository/org/ow2/asm/asm-util/8.0/asm-util-8.0.jar [ERROR] urls[37] = file:/D:/Software/CodeEnv/Maven/repository/com/google/guava/guava/28.2-android/guava-28.2-android.jar [ERROR] urls[38] = file:/D:/Software/CodeEnv/Maven/repository/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar [ERROR] urls[39] = file:/D:/Software/CodeEnv/Maven/repository/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar [ERROR] urls[40] = file:/D:/Software/CodeEnv/Maven/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar [ERROR] urls[41] = file:/D:/Software/CodeEnv/Maven/repository/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar [ERROR] urls[42] = file:/D:/Software/CodeEnv/Maven/repository/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar [ERROR] urls[43] = file:/D:/Software/CodeEnv/Maven/repository/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar [ERROR] urls[44] = file:/D:/Software/CodeEnv/Maven/repository/org/apache/commons/commons-lang3/3.7/commons-lang3-3.7.jar [ERROR] Number of foreign imports: 1 [ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]] [ERROR] [ERROR] ----------------------------------------------------- [ERROR] : org.apache.commons.logging.LogFactory [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException [ERROR] [ERROR] After correcting the problems, you can resume the build with the command [ERROR] mvn <args> -rf :boot-admin
06-25
服务POM: <?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> <artifactId>dsm-cloud-webflux</artifactId> <packaging>jar</packaging> <name>dsm-cloud-webflux</name> <parent> <groupId>com.duxiaoman.ent</groupId> <artifactId>dsm-cloud-module</artifactId> <version>4.3.0-SNAPSHOT</version> </parent> <properties> <reactor-bom.version>2022.0.10</reactor-bom.version> </properties> <repositories> <repository> <id>aliyun-public</id> <url>https://maven.aliyun.com/repository/public</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <dependencies> <!-- 配置中心 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <!-- 注册中心 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2022.0.0.0-RC2</version> <exclusions> <exclusion> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </exclusion> </exclusions> </dependency> <!-- Actuator(用于健康检查) --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <!-- 负载均衡器(必须) --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-loadbalancer</artifactId> <version>4.0.4</version> </dependency> <!-- jansi --> <dependency> <groupId>org.fusesource.jansi</groupId> <artifactId>jansi</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>com.duxiaoman.ent</groupId> <artifactId>ent-boot-commons</artifactId> </dependency> <dependency> <groupId>com.duxiaoman.ent</groupId> <artifactId>ent-boot-module-log</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> </dependency> <!-- Spring Boot WebFlux Starter (includes Reactor Netty) --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> </dependency> <!-- Reactor Core (explicitly included for better version management) --> <dependency> <groupId>io.projectreactor</groupId> <artifactId>reactor-core</artifactId> </dependency> <!-- Reactor Netty (explicitly included for better version management) --> <dependency> <groupId>io.projectreactor.netty</groupId> <artifactId>reactor-netty</artifactId> </dependency> <!-- Spring Cloud Starter --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter</artifactId> </dependency> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-openapi3-ui</artifactId> <version>4.4.0</version> </dependency> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webflux-ui</artifactId> <version>2.5.0</version> <exclusions> <exclusion> <groupId>org.webjars</groupId> <artifactId>swagger-ui</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.32</version> </dependency> <!-- For testing --> <dependency> <groupId>io.projectreactor</groupId> <artifactId>reactor-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- Reactor BOM for consistent versions --> <dependency> <groupId>io.projectreactor</groupId> <artifactId>reactor-bom</artifactId> <version>${reactor-bom.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <finalName>${project.name}</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${boot.version}</version> <configuration> <!-- springboot main method entry --> <mainClass>com.duxiaoman.ent.WebfluxDemoApplication</mainClass> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> <include>**/*.json</include> <include>**/*.ftl</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build> </project> 主POM: <?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.duxiaoman.ent</groupId> <artifactId>rsp-pom</artifactId> <version>4.3.0-SNAPSHOT</version> <packaging>pom</packaging> <name>rsp-pom</name> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.1.5</version> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <ent-version>4.3.0-SNAPSHOT</ent-version> <java.version>17</java.version> <spring-cloud.version>2022.0.4</spring-cloud.version> <boot.version>3.1.5</boot.version> <alibaba.cloud.version>2022.0.0.0-RC2</alibaba.cloud.version> <alibaba.seata.version>2.0.0</alibaba.seata.version> <fastjson.version>2.0.34</fastjson.version> <lombok.version>1.18.10</lombok.version> <docker.image.prefix>192.168.86.96:5000/ezfi</docker.image.prefix> <docker.host>http://192.168.86.96:52375</docker.host> </properties> <modules> <module>dsm-cloud-module</module> </modules> <dependencyManagement> <dependencies> <dependency> <groupId>com.duxiaoman.ent</groupId> <artifactId>ent-boot-commons</artifactId> <version>${ent-version}</version> </dependency> <dependency> <groupId>com.duxiaoman.ent</groupId> <artifactId>ent-boot-module-log</artifactId> <version>${ent-version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>${boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${alibaba.cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.5.RELEASE</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- json --> <dependency> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2</artifactId> <version>${fastjson.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>UTF-8</encoding> <compilerArgs> <arg>-parameters</arg> </compilerArgs> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.3.1</version> <executions> <execution> <id>copy-resources</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <encoding>UTF-8</encoding> <outputDirectory> ${project.build.directory} </outputDirectory> <resources> <resource> <directory>src/main/docker</directory> </resource> </resources> </configuration> </execution> </executions> </plugin> <!-- Docker maven plugin --> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.2.2</version> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerDirectory>src/main/docker</dockerDirectory> <dockerHost>${docker.host}</dockerHost> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build> </project> application.yml:: server: port: 8129 ip: 127.0.0.1 naocos_discovery_namespace: data_prd_service naocos_discovery_group: DEV_GROUP naocos_config_namespace: ${naocos_discovery_namespace} naocos_config_group: ${naocos_discovery_group} naocos_name: nacos naocos_pvvs: nacos1qaz2022ezfi spring: main: web-application-type: reactive # 确保WebFlux应用类型正确 webflux: base-path: /webflux application: name: dsm-cloud-webflux profiles: active: dev messages: encoding: utf-8 basename: i18n/commons, i18n/web, i18n/messages logging: config: classpath:logback-spring.xml level: com.duxiaoman.ent: debug application-dev.yml::: spring: config: import: - optional:nacos:${spring.application.name}.yaml - optional:nacos:ent-common.yaml cloud: nacos: username: ${naocos_name} password: ${naocos_pvvs} # 注册中心增强配置 discovery: server-addr: 10.32.141.144:8868 namespace: ${naocos_discovery_namespace} group: ${naocos_discovery_group} # 心跳配置 heart-beat-interval: 5000 heart-beat-timeout: 15000 # 配置中心增强配置 config: server-addr: ${spring.cloud.nacos.discovery.server-addr} file-extension: yaml namespace: ${naocos_config_namespace} group: ${naocos_config_group} # 高级配置 refresh-enabled: true max-retry: 10 config-retry-time: 3000 config-long-poll-timeout: 30000 enable-remote-sync-config: true # 共享配置(新版写法) shared-configs: - data-id: ent-common.yaml group: ${naocos_config_group} refresh: true - data-id: ent-common-${spring.profiles.active}.yaml group: ${naocos_config_group} refresh: true management: endpoint: health: show-details: always probes: enabled: true # 显式启用 Kubernetes 风格的健康探针 package com.duxiaoman.ent.webflux.feign; import com.duxiaoman.ent.webflux.entity.ResponseResult; import com.duxiaoman.ent.webflux.vo.InfServiceInfoVO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import reactor.core.publisher.Mono; @FeignClient(name = "dmp-cloud-datasource", path = "/infservice") public interface DatabaseServiceClient { @GetMapping(value = "/{serviceId}", produces = MediaType.APPLICATION_JSON_VALUE) Mono<ResponseResult<InfServiceInfoVO>> queryById(@PathVariable String serviceId); } 帮我看一下 这个错误 java.lang.IllegalStateException: block()/blockFirst()/blockLast() are blocking, which is not supported in thread reactor-http-nio-3 at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:86) Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: Assembly trace from producer [reactor.core.publisher.MonoFlatMap] : reactor.core.publisher.Mono.flatMap(Mono.java:3100) org.springframework.web.reactive.result.method.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:136) Error has been observed at the following site(s): *____________Mono.flatMap ⇢ at org.springframework.web.reactive.result.method.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:136) *______________Mono.defer ⇢ at org.springframework.web.reactive.result.method.annotation.RequestMappingHandlerAdapter.handle(RequestMappingHandlerAdapter.java:201) *_______________Mono.then ⇢ at org.springframework.web.reactive.result.method.annotation.RequestMappingHandlerAdapter.handle(RequestMappingHandlerAdapter.java:201) |_ Mono.doOnNext ⇢ at org.springframework.web.reactive.result.method.annotation.RequestMappingHandlerAdapter.handle(RequestMappingHandlerAdapter.java:202) |_ Mono.doOnNext ⇢ at org.springframework.web.reactive.result.method.annotation.RequestMappingHandlerAdapter.handle(RequestMappingHandlerAdapter.java:203) |_ Mono.onErrorResume ⇢ at org.springframework.web.reactive.result.method.annotation.RequestMappingHandlerAdapter.handle(RequestMappingHandlerAdapter.java:204) |_ Mono.flatMap ⇢ at org.springframework.web.reactive.DispatcherHandler.handleRequestWith(DispatcherHandler.java:184) *______________Mono.error ⇢ at org.springframework.web.reactive.result.method.annotation.RequestMappingHandlerAdapter.handleException(RequestMappingHandlerAdapter.java:254) *____________Mono.flatMap ⇢ at org.springframework.web.reactive.DispatcherHandler.handle(DispatcherHandler.java:154) *______________Mono.defer ⇢ at org.springframework.web.server.handler.DefaultWebFilterChain.filter(DefaultWebFilterChain.java:106) |_ Mono.doOnEach ⇢ at org.springframework.web.filter.reactive.ServerHttpObservationFilter.filter(ServerHttpObservationFilter.java:109) |_ Mono.doOnCancel ⇢ at org.springframework.web.filter.reactive.ServerHttpObservationFilter.filter(ServerHttpObservationFilter.java:119) |_ Mono.contextWrite ⇢ at org.springframework.web.filter.reactive.ServerHttpObservationFilter.filter(ServerHttpObservationFilter.java:123) *__Mono.transformDeferred ⇢ at org.springframework.web.filter.reactive.ServerHttpObservationFilter.filter(ServerHttpObservationFilter.java:102) |_ checkpoint ⇢ org.springframework.web.filter.reactive.ServerHttpObservationFilter [DefaultWebFilterChain] *______________Mono.defer ⇢ at org.springframework.web.server.handler.DefaultWebFilterChain.filter(DefaultWebFilterChain.java:106) |_ Mono.onErrorResume ⇢ at org.springframework.web.server.handler.ExceptionHandlingWebHandler.handle(ExceptionHandlingWebHandler.java:77) *______________Mono.error ⇢ at org.springframework.web.server.handler.ExceptionHandlingWebHandler$CheckpointInsertingHandler.handle(ExceptionHandlingWebHandler.java:98) |_ checkpoint ⇢ HTTP POST "/webflux/request/request" [ExceptionHandlingWebHandler] Original Stack Trace: at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:86) at reactor.core.publisher.Mono.block(Mono.java:1712) at org.springframework.cloud.loadbalancer.blocking.client.BlockingLoadBalancerClient.choose(BlockingLoadBalancerClient.java:163) at org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalancerClient.execute(FeignBlockingLoadBalancerClient.java:118) at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:100) at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:70) at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:96) at jdk.proxy2/jdk.proxy2.$Proxy113.queryById(Unknown Source) at com.duxiaoman.ent.webflux.controller.DataSourceCallApi.lambda$queryData$0(DataSourceCallApi.java:65) at com.duxiaoman.ent.webflux.controller.DataSourceCallApi.getWithCache(DataSourceCallApi.java:113) at com.duxiaoman.ent.webflux.controller.DataSourceCallApi.queryData(DataSourceCallApi.java:64) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at org.springframework.web.reactive.result.method.InvocableHandlerMethod.lambda$invoke$0(InvocableHandlerMethod.java:145) at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:132) at reactor.core.publisher.MonoZip$ZipCoordinator.signal(MonoZip.java:293) at reactor.core.publisher.MonoZip$ZipInner.onNext(MonoZip.java:474) at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal.java:180) at reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onNext(FluxDefaultIfEmpty.java:122) at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:299) at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:337) at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2071) at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:145) at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:152) at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onComplete(FluxPeekFuseable.java:277) at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:413) at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:431) at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:682) at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:284) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:840) DataSourceCallApi第65 () -> databaseService.queryById(httpServiceRequest.getServiceId())) 调用feign
07-17
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.3.0.RELEASE:repackage (default) on project dataextraction: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:2.3.0.RELEASE:repackage failed: Unable to find a single main class from the following candidates [com.alihealth.HealthDataProcessor, com.alihealth.TestEntDownLoadList, com.alihealth.TestFileAcceptRet, com.alihealth.Utils.Base64, com.alihealth.Utils.CodeMD5Util, com.alihealth.Utils.KeyStoreUtil, com.alihealth.Utils.StringUtil, com.alihealth.Utils.ZipCom] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles:<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.alihealth</groupId> <artifactId>dataextraction</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>jar</packaging> <name>dataextraction</name> <url>http://maven.apache.org</url> <properties> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.source>1.8</maven.compiler.source> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <spring-boot.version>1.4.3.RELEASE</spring-boot.version> </properties> <dependencies> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> <version>1.47</version> </dependency> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>4.0.3</version> <!-- 请检查最新版本 --> </dependency> <dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.32</version> </dependency> <dependency> <groupId>com.taobao.sdk</groupId> <artifactId>taobao-sdk-java</artifactId> <version>20250826</version> <scope>system</scope> <systemPath>${project.basedir}/src/main/resource/lib/taobao-sdk-java-auto_1754876302422-20250826.jar</systemPath> </dependency> <!-- <dependency>--> <!-- <groupId>com.taobao</groupId>--> <!-- <artifactId>taobao-sdk</artifactId>--> <!-- <version>20250826</version>--> <!-- </dependency>--> <dependency> <groupId>org.dom4j</groupId> <artifactId>dom4j</artifactId> <version>2.1.3</version> </dependency> <!-- MySQL JDBC --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.25</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.32</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.xinghuan</groupId> <artifactId>inceptor-driver</artifactId> <version>8.37.3</version> <scope>system</scope> <systemPath>${basedir}/src/main/resource/lib/inceptor-driver-8.37.3.jar</systemPath> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <excludes> <exclude>**/*.properties</exclude> </excludes> </configuration> </plugin> <!-- <plugin>--> <!-- <groupId>org.apache.maven.plugins</groupId>--> <!-- <artifactId>maven-jar-plugin</artifactId>--> <!-- <version>3.3.0</version>--> <!-- <configuration>--> <!-- <archive>--> <!-- <manifest>--> <!-- <mainClass>com.alihealth.HealthDataProcessor</mainClass>--> <!-- </manifest>--> <!-- </archive>--> <!-- </configuration>--> <!-- </plugin>--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.3.0.RELEASE</version> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.4</version> <configuration> <descriptorRef>jar-with-dependencies</descriptorRef> <archive> <manifest> <mainClass>com.alihealth.HealthDataProcessor</mainClass> </manifest> </archive> </configuration> </plugin> <plugin> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>unpack</id> <phase>package</phase> <goals> <goal>unpack</goal> </goals> <configuration> <artifactItems> <artifactItem> <groupId>com.alihealth</groupId> <artifactId>dataextraction</artifactId> <version>${project.version}</version> <outputDirectory>${project.build.directory}/dataextraction</outputDirectory> <includes>META-INF/assembly/**</includes> </artifactItem> </artifactItems> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <!-- <plugin>--> <!-- <artifactId>maven-assembly-plugin</artifactId>--> <!-- <configuration>--> <!--<!– <finalName>${project.name}-spedrug</finalName>–>--> <!-- <descriptor>src/main/assembly/assembly.xml</descriptor>--> <!-- </configuration>--> <!-- <executions>--> <!-- <execution>--> <!-- <id>make-assembly</id>--> <!-- <phase>package</phase>--> <!-- <goals>--> <!-- <goal>single</goal>--> <!-- </goals>--> <!-- </execution>--> <!-- </executions>--> <!-- </plugin>--> </plugins> <resources> <resource> <directory>src/main/resource</directory> <includes> <include>**/*.sh</include> </includes> </resource> <resource> <directory>src/main/resource</directory> <includes> <include>**/*.bat</include> </includes> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resource</directory> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> </resource> </resources> </build> </project> maven打包失败 什么原因
最新发布
10-17
<think>我们正在解决一个特定的Maven构建错误:`Execution repackage of goal org.springframework.boot:spring-boot-maven-plugin:2.4.2:repackage failed`,具体错误信息是`Unable to find main class`。根据提供的引用,这个问题通常发生在Spring Boot Maven插件尝试重新打包(repackage)时找不到主类。 分析原因: 1. **主类未明确指定**:Spring Boot Maven插件需要知道哪个类包含`main`方法作为应用程序的入口。如果项目中只有一个主类,插件通常可以自动找到,但如果有多个或没有,就需要明确指定。 2. **项目结构问题**:可能是一个非Spring Boot项目(如工具类项目)被误用了Spring Boot的打包插件,因为工具类项目通常不需要主类(如引用[3]所述)。 3. **插件配置问题**:在pom.xml中,可能缺少了指定主类的配置,或者配置不正确。 解决方案: 根据引用[5],我们可以在插件的配置中明确指定主类。另外,引用[3]提到,如果项目本身不需要主类,那么就不应该使用`spring-boot-maven-plugin`的repackage目标,因为该目标会尝试将项目打包成可执行的jar(需要主类)。 因此,我们有两种情况: **情况1:项目是Spring Boot应用程序(需要主类)** - 确保在`spring-boot-maven-plugin`的配置中指定主类,例如: ```xml <configuration> <mainClass>com.example.YourMainClass</mainClass> </configuration> ``` 其中`com.example.YourMainClass`是你的应用程序主类的全限定名。 **情况2:项目不是Spring Boot应用程序(不需要主类)** - 如果项目是一个普通的工具库,不应该打包成可执行的jar,那么可以移除`spring-boot-maven-plugin`插件,或者跳过repackage目标。 但是,引用[4]显示项目继承了`spring-boot-starter-parent`,这意味着它可能是一个Spring Boot项目。因此,我们更倾向于情况1的解决方案。 具体步骤: 1. **在pom.xml中明确指定主类**: 在`spring-boot-maven-plugin`的配置块内添加`<configuration>`指定主类。 示例配置(参考引用[5]): ```xml <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.4.2</version> <!-- 使用你实际的版本 --> <configuration> <mainClass>com.xx.webapps.api.main.WebappsApiBidMain</mainClass> <!-- 替换为你的主类 --> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build> ``` 2. **检查主类是否存在**: 确保指定的主类在项目中存在,并且包含`public static void main(String[] args)`方法。 3. **如果项目不需要主类**(如工具库): 考虑移除`spring-boot-maven-plugin`插件,或者跳过repackage目标。可以通过配置跳过: ```xml <executions> <execution> <id>repackage</id> <phase>none</phase> </execution> </executions> ``` 或者完全移除插件。 4. **检查主类的包路径**: 确保在配置中写的主类全限定名正确,包括包名和类名。 5. **使用Maven命令重新打包**: 在配置完成后,重新运行Maven命令: ```bash mvn clean package ``` 如果问题仍然存在,可以使用`-X`参数来获取详细的调试信息,帮助定位问题: ```bash mvn clean package -X ``` 在调试日志中,可以搜索与主类相关的信息,看插件是如何寻找主类的。 另外,引用[3]提到,如果项目是一个通用工具类项目(非Spring Boot应用),那么它不应该使用`spring-boot-maven-plugin`的repackage目标。因此,请根据项目的实际类型选择解决方案。 最后,注意插件版本与Spring Boot版本的兼容性,建议使用与Spring Boot版本匹配的插件版本。 希望这些步骤能帮助解决问题。</think>### 解决 Maven 构建失败:Spring Boot Repackage 错误 当执行 `mvn package` 时遇到 `Execution repackage of goal org.springframework.boot:spring-boot-maven-plugin:2.4.2:repackage failed: Unable to find main class` 错误,通常是由于 Spring Boot 插件无法定位主类。以下是系统化的解决方案: --- #### 1. **明确指定主类(推荐方案)** 在 `pom.xml` 的插件配置中添加 `<configuration>` 明确声明主类: ```xml <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.4.2</version> <configuration> <!-- 替换为您的实际主类 --> <mainClass>com.example.YourApplication</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> ``` > **关键点**: > - 主类需包含标准的 `public static void main(String[] args)` 方法 > - 使用全限定类名(包名+类名)[^5] --- #### 2. **检查项目类型** 若项目是**非可执行模块**(如工具库),需跳过 repackage: ```xml <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <skip>true</skip> <!-- 禁用可执行JAR生成 --> </configuration> </plugin> ``` > **适用场景**: > - 工具类项目(无 `main` 方法)[^3] > - 被其他模块依赖的公共库 --- #### 3. **验证主类存在性** 检查主类文件是否在正确位置: ```bash # 示例路径(根据实际包结构调整) src/main/java/com/example/YourApplication.java ``` > **常见问题**: > - 文件路径与包声明不匹配 > - 缺少 `@SpringBootApplication` 注解 > - 构建时被资源过滤排除 --- #### 4. **调试构建过程** 使用 `-X` 参数获取详细日志: ```bash mvn clean package -X | grep -A 20 "spring-boot-maven-plugin" ``` 在日志中检查: ```log [DEBUG] Searching for main class... [DEBUG] Candidate main class: com.example.ClassA [DEBUG] Candidate main class: com.example.ClassB [ERROR] Unable to find main class ``` > 日志会列出所有候选类,帮助确认插件识别了哪些类[^1] --- #### 5. **版本兼容性处理** 确保插件版本与 Spring Boot 父 POM 一致: ```xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.2</version> <!-- 与插件版本一致 --> </parent> ``` > **版本冲突表现**: > - 父 POM 声明旧版本(如 2.2.0)[^4] > - 插件显式声明新版本(如 2.4.2--- #### 6. **多模块项目特殊处理** 对于子模块,在主 POM 中全局配置: ```xml <pluginManagement> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.example.MainApplication</mainClass> </configuration> </plugin> </plugins> </pluginManagement> ``` > **注意**:非启动模块需按方案2跳过 repackage --- ### 根本原因分析 | 问题类型 | 发生场景 | 解决方案 | |-------------------------|-----------------------------------|------------------------| | **主类未声明** | 多 `main` 方法或路径错误 | 方案1(显式指定) | | **非可执行模块** | 工具库/公共依赖包 | 方案2(跳过repackage)| | **版本冲突** | 父POM与插件版本不一致 | 方案5(版本对齐) | | **构建过程过滤** | 资源过滤排除了主类 | 检查资源配置 | 通过以上步骤,95% 的 "Unable to find main class" 错误可被解决。若问题仍存在,请提供 `-X` 日志片段进一步分析[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值