ti-enxame.com

Copiando arquivo de um projeto para outro no maven

Estou trabalhando em um projeto de vários módulos. Estamos usando o appCtx.xml de um módulo em alguns outros módulos.

O problema atual é que eles nem sempre estão sincronizados.

Isso acontece quando alguém modifica o arquivo e o projeto é construído, a pessoa que faz isso pode esquecer de copiar para outro módulo e isso causa problemas.

Como copiar appCtx.xml dentro de src/main/resources do projeto A para src/main/resources no projeto B?

18
Gandalf StormCrow

Você pode fazer isso com o plugin de recursos maven: copy-resources , algo como:

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <executions>
        <execution>
            <id>copy-appCtx</id>
            <phase>generate-resources</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/src/blahhere</outputDirectory>
                <overwrite>true</overwrite>
                <resources>
                    <resource>
                        <directory>../other_project/src/blah/blah</directory>
                        <includes>
                            <include>appCtx.xml</include>
                        </includes>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

Isso copia um arquivo de um projeto (colocado na mesma árvore de origem) como parte da fase de geração de recursos. Você pode adaptar isso às suas necessidades.

Essa cópia de um projeto para outro pode causar construções instáveis ​​se os projetos não forem todos criados de uma só vez, mas os itens acima funcionarão para projetos sempre construídos juntos.

43
Matthew Farwell