Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在构建时,maven应在步骤1和3调用spring boot maven插件。我可以避免警告吗;找到插件“的重复声明?”;?_Maven - Fatal编程技术网

在构建时,maven应在步骤1和3调用spring boot maven插件。我可以避免警告吗;找到插件“的重复声明?”;?

在构建时,maven应在步骤1和3调用spring boot maven插件。我可以避免警告吗;找到插件“的重复声明?”;?,maven,Maven,我有一个Maven构建,它有三个步骤: spring boot maven插件:在集成测试开始时启动我的应用程序,在集成测试结束时停止它 springdoc openapi maven插件:在集成测试期间,要求openapi(=Swagger)从应用程序中现有的REST方法生成yaml文件 springbootmaven插件:创建springboot应用程序的可执行FATJAR org.springframework.boot springbootmaven插件 预集成测试 预集成测试

我有一个Maven构建,它有三个步骤:

  • spring boot maven插件:在集成测试开始时启动我的应用程序,在集成测试结束时停止它

  • springdoc openapi maven插件:在集成测试期间,要求openapi(=Swagger)从应用程序中现有的REST方法生成
    yaml
    文件

  • springbootmaven插件:创建
    springboot
    应用程序的可执行FATJAR

  • 
    org.springframework.boot
    springbootmaven插件
    预集成测试
    预集成测试
    开始
    整合后测试
    整合后测试
    停止
    org.springdoc
    springdoc openapi maven插件
    ${springdoc openapi maven plugin.version}
    集成测试
    生成
    http://localhost:9090/v3/api-文件
    openapi.json
    ${project.build.directory}/openapi
    org.springframework.boot
    springbootmaven插件
    重新包装
    真的
    
    springbootmaven插件
    被调用两次,而不是在同一个maven阶段,并且在调用之间使用了一个“外来”maven插件

    有没有一种方法可以避免关于重复使用
    springbootmaven插件的警告

    [WARNING] Some problems were encountered while building the effective model for fr.comptes.france:application-metier-et-gestion:jar:0.0.6-SNAPSHOT
    [WARNING] 'build.plugins.plugin.(groupId:artifactId)' must be unique but found duplicate declaration of plugin org.springframework.boot:spring-boot-maven-plugin @ line 191, column 12
    [WARNING] 
    [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
    [WARNING] 
    [WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
    

    永远不要声明一个插件两次


    相反,在插件定义中定义不同的执行。这些执行可能处于不同的阶段。

    @JFabianMeier:是的。最终,我成功地重新设计了
    springbootmaven插件
    执行流程:

    
    org.springframework.boot
    springbootmaven插件
    预集成测试
    预集成测试
    开始
    整合后测试
    整合后测试
    停止
    可执行jar
    安装
    重新包装
    真的
    
    为什么要通过“构建为集成”测试启动应用程序?您可以使用@SpringBootTest等。问题是您正在编写的集成测试是哪种类型的,不能通过使用@SpringBootTest?@khmarbaise来处理?哦,是的。这很棘手,对不起!实际上,这里的集成测试并不是真正的集成测试!它的目标是在构建时启动应用程序,使其成为OpenAPI工具生成描述其REST服务的
    yaml
    文件所需的服务器。稍后,我的应用程序的客户端将使用此
    yaml
    文件来构建对其REST服务的访问。据我所知,这也可以通过集成测试实现。。。例如,见