【问题标题】:How to properly exclude springboot-actuator in pom.xml如何在 pom.xml 中正确排除 spring boot-actuator
【发布时间】:2019-06-19 09:55:37
【问题描述】:

即使在 pom.xml 中排除后,Actuator 仍会显示我的应用程序运行状况信息

尝试在此处遵循官方文档

https://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/exclude-dependency.html

但仍然无法禁用它,这是我的 pom

<build>
    <finalName>my-app/finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <excludes>
                    <exclude>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-actuator
                        </artifactId>
                    </exclude>
                </excludes>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

我希望我的应用的健康信息不会再显示,但在浏览器中访问时仍会显示

【问题讨论】:

    标签: maven spring-boot spring-boot-actuator


    【解决方案1】:

    不要在&lt;plugin&gt; 声明中使用排除项,它与打包到生成的工件中的依赖项无关

    而是找到&lt;dependencies&gt; 部分;弹簧执行器应该出现在那里。

    只需移除对执行器的依赖即可。

    检查maven没有包含jar的最好方法是检查编译好的spring boot应用的BOOT-INF/lib的内容

    如果构建过程很复杂,并且您不知道执行器的确切来源,请尝试在您的 pom 上使用mvn dependency:tree,它应该是执行器的路径

    一旦你发现 spring boot 执行器来自 groupId=X 和 artifactId=Y,你应该在你的 pom.xml 中排除它:

     <dependencies>
        <dependency>
            <groupId>X</groupId>
            <artifactId>Y</artifactId>
            <version>...</version>
            <exclusions> 
              <exclusion>__here__comes__
                      actuator_groupId_and_artifact_id__
              </exclusion> 
            </exclusions>
        </dependency>
        ...
     </dependencies>
    

    【讨论】:

    • 不,我在依赖项中没有它,我只有 spring-boot-starter-web、spring-cloud-starter-zuul 和 spring-boot-starter-security
    • 所以你说 BOOT-INF/lib 中没有执行器罐子?在这种情况下,无法初始化执行器...
    • 是的,有执行器 jar,spring-boot-actuator 和 spring-boot-starter-actuator,我不知道为什么在我没有在 maven 依赖项中添加它们时它在那里
    • 这就是为什么我建议在你的 pom 所在的目录中运行 mvn dependency:tree 的原因。请仔细阅读我的回答:)
    • 我已经知道执行器的来源,我的问题是如何移除它
    猜你喜欢
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 2019-06-25
    • 2021-08-04
    • 2016-06-01
    • 2016-06-19
    • 1970-01-01
    相关资源
    最近更新 更多