Filtrar un archivo Spring XML de un proyecto dependiente

Tengo un proyecto MyProject que depende de la configuración en otro proyecto, BaseProject. Dentro de BaseProject tengo dependencias para muchos proyectos diferentes como ErrorLogging, PerformanceLogging, etc. Quiero poder construir el proyecto de nivel superior (MyProject) y que filtre todos los archivos xml de primavera en los proyectos que tiene como dependencias. No estoy teniendo suerte. Puedo ver los frijoles pero no se están filtrando. Algunos de los beans se están filtrando con filtros predeterminados definidos en sus propios poms, pero no están utilizando los filtros de MyProject.

MyProject: contiene los archivos de filtro e importa la configuración de los otros proyectos.

BaseProject: tiene definidos los beans de primavera que requieren filtrado.

ErrorLogging: tiene definidos los beans de primavera que requieren filtrado.

Cuando ejecuto un paquete desde MyProject, todos los archivos de primavera se extraen correctamente en el archivo jar, pero aún contienen los valores de marcador de posición de propiedad $ {error.logging.host}, por ejemplo ... Los beans en MyProject se filtran correctamente. La alternativa a esto es definir los beans en MyProject, pero hay alrededor de 10 de estos proyectos que usan BaseProject y son beans y no quiero tener que redefinirlos en 10 proyectos separados.

Si alguien pudiera arrojar alguna luz sobre este tema, sería genial. Gracias

Editar:

Para aclarar esto, tengo una definición xml de spring beans dentro del proyecto ErrorLogging llamada errors-config.xml que define beans para conectarse a bases de datos. Esto solo tiene marcadores de posición para los detalles de conexión que debe proporcionar el archivo filter.properties que está dentro de MyProject.

errors-config.xml se importa como un recurso en baseproject-config.xml que se encuentra dentro del BaseProject. El proyecto base y su archivo de configuración se importan a MyProject.

Luego construyo MyProject usando Maven y me gustaría que los marcadores de posición de propiedad dentro de errors-config.xml sean reemplazados por los valores en filter.properties en MyProject. MyProject puede filtrar con éxito sus propios archivos, pero no los del proyecto ErrorLogging. El registro de errores parece recoger filtros de su propia carpeta src / main / resources en lugar de la de MyProject.

Respuesta 1

Puede lograrlo desempacando todas las dependencias, filtrando y empacando nuevamente, todo el proceso depende de la estructura de su proyecto, para una configuración básica esto puede ser suficiente:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>unpack-dependencies</id>
            <!--unpack all the dependencies to the target of this project-->        
            <phase>initialize</phase>
            <inherited>false</inherited>
            <goals>
                <goal>unpack-dependencies</goal>
            </goals>
            <configuration>
                <includeGroupIds>${pom.groupId}</includeGroupIds>
                <overWrite>true</overWrite>
                <outputDirectory>${project.build.directory}/${artifactId}</outputDirectory>
                <includes>**/*.properties,**/*.xml</includes>
            </configuration>
        </execution>
    </executions>
</plugin>
<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <descriptors>
            <descriptor>${config.maven.plattform.resources}/assembly/zip.xml</descriptor>
        </descriptors>
    </configuration>
    <executions>
        <execution>
            <id>zip</id>
            <phase>package</phase>
            <inherited>true</inherited>
            <goals>
                <goal>assembly</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Esto debería funcionar siempre que haya definido correctamente el filtrado correcto de los recursos (que tiene lugar más adelante y también utiliza el complemento maven-resources).

Respuesta: 2

Actualmente estoy tratando de extraer de un archivo Xml (al que se puede acceder a través de esta dirección: http://mobilite.euroairport.com/services/getDepartureAirports?language=French) una lista de aeropuertos. Mi problema es ...

Tarea simple pero no pude encontrar una manera de hacerlo. Mi JSON de salida debe ser {"id": "somestring", "nums": [44,31,87,11,34]} Estoy usando la biblioteca javax.json con JSONObject / JsonArray. ...

Al pasar datos (serialización de datos) desde Java (servidor) a Flex (cliente), los nombres del objeto cambian. Por favor encuentre los detalles a continuación. Java Pojo public class MSC {cadena pública ...

Necesito controlar la visibilidad de un botón de acción flotante que se encuentra en una BottomSheet desde una clase Fragment, pero cuando trato de configurar su visibilidad me sale este mensaje de error: ...