1

I have a parent pom which is inherited by multiple other poms

superpom
|--pokemon
|--|--app
|--|--infrastructure
|--yu-gi-oh
|--|--app
|--|--infrastructure

I have multiple config files like:

  • a cve-suppress.xml file for the good old dependency plugin (can be directly on pom level)
  • logback.xml (must be in test/resources)
  • ...

Of course, I could have these files in every project in every module, but changes would lead to changes everywhere and therefore consume much time.

How can I effectively move/copy the files on runtime to the child poms?

Does files are mostly used for testing in gitlab pipelines

Possible ideas

1. Resource Plugin in superpom

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.0.2</version>
    <executions>
        <execution>
            <id>copy-resource-one</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>${basedir}/target/destination-folder</outputDirectory>
                <resources>
                    <resource>
                        <directory>source-files</directory>
                        <includes>
                            <include>foo.txt</include>
                        </includes>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>
  • superpom specifies path to resource
  • not working, because when e.g. pokemon executes plugin, in this scope, the file does not exist

2. Use Gitlab variables/files

  • copy files in gitlab pipelines to desired place
  • problem1 -> copy file to every test/resource folder in every module of project is hard and changes to path may lead to errors
  • problem2 -> file content is in gitlab therefore separeted from parent pom, overview might get blurry

3. Use mojo exec plugin

  • trigger script directly creating file
  • I am not sure how to do this exactly, I cannot find good examples so far :/

Do you have any other ideas? Is there a way I am missing or a dedicated plugon for this?

Wumba
  • 99
  • 1
  • 12

0 Answers0