es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

spring-boot-maven-plugin @ConditionalOnProperty El complemento de Spring Boot para Maven @ConditionalOnProperty

Estoy tratando de usar @ConditionalOnProperty mientras inicio la aplicación con spring-boot-maven-plugin.

Si inicio el proyecto con Eclipse, solo tengo que agregar -Dexample=true a los argumentos de VM.

@ConditionalOnProperty( name = "example", havingValue = "true", matchIfMissing = false )

Intenté hacer lo mismo con spring-boot-maven-plugin:

<jvmarguments>-Dexample=true</jvmarguments>
<jvmarguments>-Dspring-boot.run.arguments="--example=true"</jvmarguments>
<arguments>
    <argument>-Dexample=true</argument>
    <argument>-Dspring-boot.run.arguments="--example=true"</argument>
</arguments>

Pero ninguno de estos funciona.

Si agrego un perfil

<jvmarguments>-Dspring.profiles.active=exampleProfile</jvmarguments>

que contiene el argumento example:true, funciona.

EDICIÓN:

El argumento exacto es

<arguments>
    <argument>openapi.offline=true</argument>
</arguments>

pero la propiedad aún no se encuentra

- @ConditionalOnProperty (openapi.offline=true) no encontró la propiedad 'offline'

Mi condicional:

@ConditionalOnProperty( prefix = "openapi", name = "offline", havingValue = "true", matchIfMissing = false )

Solución:

Tenía múltiples

<jvmarguments> -example1 </jvmarguments>
<jvmarguments> -example2 </jvmarguments>

pero se anulan entre sí. Así que tuve que ponerlos todos en un campo de jvmArguments.

<jvmarguments> -example1 -example2 </jvmarguments>
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Uso de @ConditionalOnProperty con spring-boot-maven-plugin

    Si desea utilizar @ConditionalOnProperty al iniciar la aplicación con spring-boot-maven-plugin, puede agregar las propiedades necesarias en la sección <jvmarguments> o <arguments> del archivo pom.xml.

    Para establecer la propiedad example en true, puede agregar la siguiente línea al archivo pom.xml:

    <jvmarguments>-Dexample=true</jvmarguments>
    

    O, utilizando la opción --example=true:

    <jvmarguments>-Dspring-boot.run.arguments="--example=true"</jvmarguments>
    

    Sin embargo, si estas opciones no funcionan, puede intentar agregar un perfil que contenga la propiedad necesaria. Por ejemplo:

    <jvmarguments>-Dspring.profiles.active=exampleProfile</jvmarguments>
    

    Donde exampleProfile contiene la propiedad example:true.

    Si aún tiene problemas para encontrar la propiedad, asegúrese de utilizar el prefijo y nombre correctos. Por ejemplo:

    @ConditionalOnProperty(prefix = "openapi", name = "offline", havingValue = "true", matchIfMissing = false)
    

    Finalmente, si tiene varias propiedades para establecer, asegúrese de incluirlas en la misma sección <jvmarguments>, como líneas separadas o separadas por espacios:

    <jvmarguments>-example1 -example2</jvmarguments>

Comments are closed.