蒋连杰 2020-10-29 10:32 采纳率: 50%
浏览 40

新手最近学习maven的时候有一个问题求解

请问一下为什么我把maven项目pom里面的插件全删了,仓库的插件也删除了,使用idea里面的clean,test指令时依然会自动生成啊?什么原理呢?

  • 写回答

1条回答 默认 最新

  • 一个风轻云淡 后端领域优质创作者 2023-04-13 14:43
    关注

    Maven项目中的POM文件中包含了项目的依赖和构建信息,其中会定义各种插件,通过这些插件来进行项目的构建工作。Maven在构建项目时,会使用默认的一些插件来对项目进行构建。这些默认的插件包括maven-clean-plugin和maven-surefire-plugin等,它们能够执行clean和test命令。

    当你执行mvn clean命令时,Maven会自动执行maven-clean-plugin插件来清理项目中生成的目标文件夹(target目录),这样就保证了项目的清理工作。同样地,当你执行mvn test命令时,Maven会自动执行maven-surefire-plugin插件来运行测试用例,这样就能够保证项目中的测试用例得以运行。

    因此,即使你将pom文件中的插件全部删除,Maven也会使用默认插件来执行clean和test命令。如果你想禁用默认插件,可以在pom文件中进行配置。可以参考以下示例:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-clean-plugin</artifactId>
                <version>3.1.0</version>
                <executions>
                    <execution>
                        <id>clean</id>
                        <phase>none</phase>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M5</version>
                <executions>
                    <execution>
                        <id>test</id>
                        <phase>none</phase>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    
    

    我们配置了maven-clean-plugin和maven-surefire-plugin插件,并在执行clean和test命令时将它们的执行phase设置为none,这样就可以禁用它们的自动执行了。

    评论

报告相同问题?

悬赏问题

  • ¥15 一道python难题2
  • ¥15 一道python难题
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备