Saltar al contenido

¿Puedo usar el archivo de propiedad en maven pom.xml para la configuración de la ruta de vuelo?

Solución:

Eche un vistazo al properties-maven-plugin. Le permite leer las propiedades de un archivo para luego usarlas en su pom.

Agregue la siguiente definición de complemento:

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0.0</version>
    <executions>
      <execution>
        <phase>initialize</phase>
        <goals>
          <goal>read-project-properties</goal>
        </goals>
        <configuration>
          <files>
            <file>src/main/resources/abc.properties</file>
          </files>
        </configuration>
      </execution>
    </executions>
  </plugin>

Si abc.properties contiene:

jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://127.0.0.1:3306/db_ab
jdbc.user = db_user

A continuación, puede utilizar las propiedades de la siguiente manera:

<!-- language: xml -->

<driver>${jdbc.driver}</driver>
<url>${jdbc.url}</url>
<user>${jdbc.user}</user>

en la versión 3.0 tienes que usar configFile como:

<configFile>src/main/resources/db/config/flyway.properties</configFile>

En mi opinión, el mejor y más flexible enfoque es:

a) usar perfiles y filtrado – mantener todas las propiedades de configuración para un perfil específico (desarrollo, prueba, etc.), por ejemplo, en desarrollo.propiedades:

jdbc.url=jdbc:mysql://127.0.0.1:3306/testdb?useSSL=false
jdbc.user=testuser
jdbc.password=testpass
jdbc.driver=com.mysql.jdbc.Driver

Luego, en su archivo pom (posiblemente en root pom) defina un perfil, por ejemplo:

...
<profiles>
    <profile>
        <id>development</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <build>
            <filters>
                <filter>../filters/development.properties</filter>
            </filters>
        </build>
        ...

aquí puedes ver eso desarrollo El perfil está activado de forma predeterminada. Si desea utilizar otro perfil, configúrelo con

-p [profile-id]

B) establecer flyway.properties con filtrado valores: sus flyway.properties deben ubicarse, por ejemplo, en src / main / resources y los valores deben usarse a partir de los parámetros definidos en el archivo de propiedades del perfil:

flyway.driver = ${jdbc.driver}
flyway.url = ${jdbc.url}
flyway.user = ${jdbc.user}
flyway.password = ${jdbc.password}

C) referencia flyway.properties desde el directorio de compilación – use una configuración de complemento simple (realmente me gustan los poms limpios):

...
    <build>
        <resources>
            <!-- This way we instruct maven to inject values from filters into the resources -->
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.flywaydb</groupId>
                <artifactId>flyway-maven-plugin</artifactId>
                <configuration>
                    <configFile>${project.build.directory}/classes/flyway.properties</configFile>
                    <locations>
                        <location>classpath:migration/mysql</location>
                    </locations>
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...

No olvide habilitar el filtrado de recursos como se muestra en muchos ejemplos aquí. Mi La versión de flyway-maven-plugin es 3.2.1 y se administra en pluginManagement en el pom principal, por lo que la versión no es visible aquí. También utilizo scripts SQL explícitos con configuración de ubicaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *