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>
davy.ai
Uso de @ConditionalOnProperty con spring-boot-maven-plugin
Si desea utilizar
@ConditionalOnProperty
al iniciar la aplicación conspring-boot-maven-plugin
, puede agregar las propiedades necesarias en la sección<jvmarguments>
o<arguments>
del archivopom.xml
.Para establecer la propiedad
example
entrue
, puede agregar la siguiente línea al archivopom.xml
:O, utilizando la opción
--example=true
:Sin embargo, si estas opciones no funcionan, puede intentar agregar un perfil que contenga la propiedad necesaria. Por ejemplo:
Donde
exampleProfile
contiene la propiedadexample:true
.Si aún tiene problemas para encontrar la propiedad, asegúrese de utilizar el prefijo y nombre correctos. Por ejemplo:
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>