Juergen
Juergen

Reputation: 3743

Creating second customized POM in eclipse

Within a maven project under eclipse, I want to have a second(or customized) pom.xml in which I can use plugings like the assembly-plugin.

The problem with this plugin is that it requieres an outputh path which is only interesting for me.

Since I'm using git to push to a remote repository, I don't want to pollute the version controlled pom.xml with my private paths and other stuff.

I read about inheritance and multi-mode possibilities, but I only need two poms:

1) One for the public with general settings

2) One only for me with cusotimzed build options

I tried to create a second pom file and wanted to build the project with a new run configuration, but I don't know how to pass the -f parameter(which should call a different pom) in that dialog.

Thanks for hints or best practices.

Example of what I want to put in the custom pom:

<plugin>
<artifactId>maven-assembly-plugin</artifactId>
    <version>2.1</version> 
    <configuration>
        <outputDirectory>some\private\path</outputDirectory>
        <finalName>SomeName</finalName>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <appendAssemblyId>true</appendAssemblyId>
    </configuration>
</plugin> 

Upvotes: 1

Views: 1143

Answers (1)

Aaron Digulla
Aaron Digulla

Reputation: 328556

Select the second POM in the Package Explorer, right click -> Run As -> Maven Build...

That should run Maven with the custom POM.

If you don't get the Maven options in the "Run As" menu, go to the "Content Types" preferences page -> Text -> XML -> Maven POM XML.

Add the name of your custom POM so Eclipse understands that this is also a POM (I'm not 100% sure it will look inside a file to determine the type).

If that also fails, you can use a trick: Write a small tool that takes the unmodified POM, adds the XML which you need and then runs Maven. On Linux, you can use shell scripts for that. On Windows, a small Java program might be easier. Or have a look at PowerShell.

Upvotes: 2

Related Questions