【问题标题】:Maven build problem with Spring Boot 2.7.0Spring Boot 2.7.0 的 Maven 构建问题
【发布时间】:2022-11-11 02:40:11
【问题描述】:

我正在从 Spring Boot 2.0.4 迁移到 2.7.0 并面临以下问题:

项目结构
多模块项目:

/parent-project
  +core
  +monitoring
  +simulator

项目“监控”依赖于“核心”。
项目“模拟器”依赖于“监控”和“核心”。

Maven POM 文件

src/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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>my.company.parent_project</groupId>
    <artifactId>parent_project</artifactId>
    <version>1.0.0</version>
    <packaging>pom</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.0</version>
    </parent>

    <properties>
        <java.version>1.8</java.version>
        <maven.compiler.target>${java.version}</maven.compiler.target>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <repositories>
        <repository>
           <id>central</id>
           <url>https://repo1.maven.org/maven2/</url>
        </repository>
    </repositories>

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>


    </dependencies>

    <modules>
        <module>core</module>
        <module>monitoring</module>
        <module>simulator</module>
    </modules>
</project>

src/core/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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <artifactId>core</artifactId>
    <packaging>jar</packaging>

    <parent>
        <groupId>my.company.parent_project</groupId>
        <artifactId>parent_project</artifactId>
        <version>1.0.0</version>
    </parent>
</project>

src/监控/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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <artifactId>monitoring</artifactId>
    <packaging>jar</packaging>

        <parent>
        <groupId>my.company.parent_project</groupId>
        <artifactId>parent_project</artifactId>
        <version>1.0.0</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>my.company.parent_project</groupId>
            <artifactId>core</artifactId>
            <version>1.0.0</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>monitoring</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                        <configuration>
                            <classifier>flat</classifier>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            
        </plugins>
    </build>

</project>

src/模拟器/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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <artifactId>simulator</artifactId>
    <packaging>jar</packaging>

    <parent>
        <groupId>my.company.parent_project</groupId>
        <artifactId>parent_project</artifactId>
        <version>1.0.0</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>my.company.parent_project</groupId>
            <artifactId>core</artifactId>
            <version>1.0.0</version>
        </dependency>
        
        <dependency>
            <groupId>my.company.parent_project</groupId>
            <artifactId>monitoring</artifactId>
            <version>1.0.0</version>
        </dependency>
            
    </dependencies>

    <build>
        <finalName>simulator</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                        <configuration>
                            <classifier>flat</classifier>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

问题

在 Spring Boot 2.0.4 中,当我编译项目“监控”时,它将构建 2 个 jar 文件,如下所示:

文件“monitoring-flat.jar”是完整的,用于通过java -jar 命令独立执行。
文件“monitoring.jar”未打包,用于编译依赖项目“模拟器”。 这在 Spring Boot 2.0.4 中运行良好。

但是,当我迁移到 Spring Boot 2.7.0 时,它就不再工作了。 输出如下:

文件“monitoring-flat.jar”和“monitoring.jar”都是完整的。另外,我看到文件“monitoring.jar.original”没有完整打包。

编译项目“模拟器”时,会发生错误,因为它无法从文件“monitoring.jar”中访问编译后的类。

mvn -f pom.xml  -Dmaven.test.skip=true package -B -e -U 

 --------------< parent_project:monitoring >---------------
[INFO] Building monitoring 1.0.0                                          
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ monitoring ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] Copying 0 resource
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.10.1:compile (default-compile) @ monitoring ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:3.2.0:testResources (default-testResources) @ monitoring ---
[INFO] Not copying test resources
[INFO]
[INFO] --- maven-compiler-plugin:3.10.1:testCompile (default-testCompile) @ monitoring ---
[INFO] Not compiling test sources
[INFO]
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ monitoring ---
[INFO] Tests are skipped.
[INFO]
[INFO] --- maven-jar-plugin:3.2.2:jar (default-jar) @ monitoring ---
[INFO] 
[INFO] --- spring-boot-maven-plugin:2.7.0:repackage (repackage) @ monitoring ---
[INFO] Replacing main artifact with repackaged archive
[INFO]
[INFO] --- spring-boot-maven-plugin:2.7.0:repackage (default) @ monitoring ---
[INFO] Attaching repackaged archive ...\src\monitoring\target\monitoring-flat.jar with classifier flat
[INFO]

[INFO] -------------< parent_project:simulator >-------------
[INFO] Building simulator 1.0.0                                       [6/7]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ simulator ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] Copying 0 resource
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.10.1:compile (default-compile) @ simulator ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 16 source files to [project path]\src\simulator\target\classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[26,64] package [my package].monitoring.service.customer does not exist
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[27,79] package [my package].monitoring.service.customer.device.message does not exist
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[28,79] package [my package].monitoring.service.customer.device.message does not exist
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[29,79] package [my package].monitoring.service.customer.device.message does not exist

[INFO] 82 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for device-manager 1.0.0:
[INFO]
[INFO] [parent_project] ..................................... SUCCESS [  0.018 s]
[INFO] core ............................................... SUCCESS [ 19.815 s]
[INFO] monitoring ......................................... SUCCESS [  9.860 s]
[INFO] simulator ...................................... FAILURE [  9.909 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:27 min
[INFO] Finished at: 2022-06-02T14:31:24+07:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compile) on project simulator: Compilation failure: Compilation failure: 
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[26,64] package [my package].monitoring.service.customer does not exist
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[27,79] package [my package].monitoring.service.customer.device.message does not exist

[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[63,17] cannot find symbol
[ERROR]   symbol:   variable super
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[66,9] method does not overri
de or implement a method from a supertype
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[70,17] cannot find symbol   
[ERROR]   symbol:   variable super
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[73,9] method does not overri
de or implement a method from a supertype
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[79,22] cannot find symbol   
[ERROR]   symbol:   variable WebsocketMessage
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[87,22] cannot find symbol   
[ERROR]   symbol:   variable WebsocketMessage
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[93,41] cannot find symbol   
[ERROR]   symbol:   variable logger
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[98,33] cannot find symbol   
[ERROR]   symbol:   variable logger
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[103,25] cannot find symbol

[ERROR]   symbol:   method getChannel()
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[207,25] cannot find symbol  
[ERROR]   symbol:   variable logger
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[239,25] cannot find symbol  
[ERROR]   symbol:   class DeviceMessage
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[239,53] cannot find symbol  
[ERROR]   symbol:   class DeviceMessage
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[241,40] cannot find symbol
[ERROR]   symbol:   variable DeviceMessageType
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[244,53] cannot find symbol  
[ERROR]   symbol:   variable DeviceMessageResult
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[247,60] cannot find symbol  
[ERROR]   symbol:   variable ResponseDeviceStatus
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[251,60] cannot find symbol  
[ERROR]   symbol:   variable ResponseDeviceStatus
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[254,60] cannot find symbol
[ERROR]   symbol:   variable ResponseDeviceStatus
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[257,60] cannot find symbol
[ERROR]   symbol:   variable ResponseDeviceStatus
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[260,60] cannot find symbol
[ERROR]   symbol:   variable ResponseDeviceStatus
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[263,60] cannot find symbol
[ERROR]   symbol:   variable ResponseDeviceStatus
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[266,60] cannot find symbol
[ERROR]   symbol:   variable ResponseDeviceStatus
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[278,38] cannot find symbol
[ERROR]   symbol:   class WebsocketMessage
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[278,55] cannot find symbol  
[ERROR]   symbol:   variable WebsocketMessage
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[279,41] cannot find symbol
[ERROR]   symbol:   method getChannel()
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[285,25] cannot find symbol  
[ERROR]   symbol:   variable logger
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[302,25] cannot find symbol  
[ERROR]   symbol:   class DeviceMessage
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[302,53] cannot find symbol  
[ERROR]   symbol:   class DeviceMessage
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[304,40] cannot find symbol  
[ERROR]   symbol:   variable DeviceMessageType
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[308,53] cannot find symbol  
[ERROR]   symbol:   variable DeviceMessageResult
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[315,38] cannot find symbol  
[ERROR]   symbol:   class WebsocketMessage
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[315,55] cannot find symbol  
[ERROR]   symbol:   variable WebsocketMessage
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[316,41] cannot find symbol
[ERROR]   symbol:   method getChannel()
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/SimulatorWebsocketManager.java:[322,25] cannot find symbol
[ERROR]   symbol:   variable logger
[ERROR]   location: class parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/Simulator.java:[144,22] cannot find symbol
[ERROR]   symbol:   variable THROUGH
[ERROR]   location: class parent_project.simulator.api.Simulator
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/Simulator.java:[147,22] cannot find symbol
[ERROR]   symbol:   variable FAULTED
[ERROR]   location: class parent_project.simulator.api.Simulator
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/Simulator.java:[150,22] cannot find symbol
[ERROR]   symbol:   variable INITIALIZING
[ERROR]   location: class parent_project.simulator.api.Simulator
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/Simulator.java:[153,22] cannot find symbol
[ERROR]   symbol:   variable UPDATING
[ERROR]   location: class parent_project.simulator.api.Simulator
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/Simulator.java:[156,22] cannot find symbol
[ERROR]   symbol:   variable REBOOTING
[ERROR]   location: class parent_project.simulator.api.Simulator
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/Simulator.java:[200,40] cannot find symbol
[ERROR]   symbol:   method run()
[ERROR]   location: variable manager of type parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/api/Simulator.java:[220,32] cannot find symbol
[ERROR]   symbol:   method stop()
[ERROR]   location: variable manager of type parent_project.simulator.api.SimulatorWebsocketManager
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/gui/MainGUI.java:[1412,41] cannot find symbol
[ERROR]   symbol: class ResponseDeviceStatus
[ERROR] [project path]/src/simulator/src/main/[my package]/simulator/gui/MainGUI.java:[1412,71] cannot find symbol
[ERROR]   symbol: variable ResponseDeviceStatus
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compile) on project simulator: Compilat
ion failure
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.compiler.CompilationFailureException: Compilation failure
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:1310)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:198)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[ERROR]
[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/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :simulator

谁能知道如何解决这个问题?

环境信息:

  • 问题发生在 Apache Maven 3.6.3/3.8.4 上
  • Java JDK 1.8.0_331

【问题讨论】:

  • [ERROR] ... cannot find symbol [ERROR] symbol: class Responsetatus 你必须修复你的代码......从 2.0.4 迁移到 2.7.0 是一个巨大的步骤......我强烈建议阅读其间的版本的发行说明......并逐步进行...... . 2.0.X 到 2.1.X, 2.1.X 到 2.2.X 等等. 也使用最新版本的 Maven... 等等However, when I migrated to Spring Boot 2.7.0, it will not work anymore. The output will be as follow: 这是什么意思... 包已经生成等等发生了很多变化。之间……
  • @khmarbaise 类 Responsetatus 在项目“监控”中,它可以成功编译而没有问题。
  • 错误消息告诉不同的东西?发布更多日志而不是微小的摘录会很有帮助......
  • @khmarbaise 我更新了更详细的日志。
  • 我将在 Github 中创建一个示例项目以供参考

标签: java spring spring-boot maven


【解决方案1】:

我根据以下参考找到了解决方案:
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.1-Release-Notes
https://docs.spring.io/spring-boot/docs/2.1.4.RELEASE/maven-plugin/examples/repackage-classifier.html

Maven 插件
finalName 属性不再可自定义以对齐 使用标准 Maven 插件的行为。

如果您正在自定义重新打包目标,主要执行现在已经 必须指定的重新包装的 id,请参阅更新的示例。

很简单,只需将&lt;id&gt;repackage&lt;/id&gt; 添加到文件src/monitoring/pom.xml 中即可

【讨论】:

  • 这不能解释编译错误...
  • 我不知道如何解释细节,但你可以参考这个:baeldung.com/spring-boot-repackage-vs-mvn-package
  • 项目“模拟器”依赖于 JAR 文件“monitoring.jar”进行编译。如果文件“monitoring.jar”不是“重新打包的 JAR 文件”(通常文件大小小于 1Mb),它将起作用。但如果“monitoring.jar”是“重新打包的 JAR 文件”(通常文件大小大于 1Mb),它将无法正常工作。
  • “重新打包的 JAR 文件”的结构类似于“BOOT-INF/classes/my/company/package_name/Monitoring.class”,它不能被其他项目用于编译。
  • 正确的结构应该类似于“my/company/package_name/Monitoring.class”
【解决方案2】:

添加关注以监控

<properties>
    <spring-boot.repackage.skip>true</spring-boot.repackage.skip>
</properties>

【讨论】:

    猜你喜欢
    • 2019-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    • 2023-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多