Yes it's something that we can extend.

-------- Original message --------
From: Alex Soto <[email protected]> 
Date: 21/04/2016  18:23  (GMT+00:00) 
To: [email protected] 
Subject: Re: karaf-maven-plugin multiple outputs with classifiers 

I found this fragment:

        if (targetFile != null && 
project.getPackaging().equals("karaf-assembly")) {            serverName = 
targetFile.getName();        } else {           serverName = 
artifact.getArtifactId() + "-" + artifact.getVersion();        }
Means that target file is only honored when the pom packaging is 
‘karat-assembly’ which greatly limits the plugin.Is there any strong reason for 
this?  Why not honor the targetFile property in all cases?


Best regards,
Alex soto






On Apr 21, 2016, at 12:56 PM, Morgan Hautman <[email protected]> wrote:
Hi Alex,

Take a look at the code here 
https://github.com/apache/karaf/tree/master/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling

There is an "AssemblyMojo" & a ArchiveMojo (the 2 ones you use).

There are all the parameters defined for a specific goal, with sometimes some 
comments on the parameter.

I hope this help you clarify it a bit.

Regards,
Morgan

PS: JB is away (travel) so he may not immediately respond if you need his 
knowledge.

On 2016-04-21 17:10, Alex Soto wrote:
Not having any luck here!!

Changed pom packaging to ‘pom’ and configured both goals ‘assembly’ and 
‘archive’ as separate executions:

<plugin>
                <groupId>org.apache.karaf.tooling</groupId>
                <artifactId>karaf-maven-plugin</artifactId>
                <executions>
                        <execution>
                                <id>gen-assembly-la1</id>
                                <phase>prepare-package</phase>
                                <goals>
                                        <goal>assembly</goal>
                                </goals>
                                <configuration>
                                        <classifier>la1</classifier>
                                        
<resourcesDir>${project.build.directory}/la1/resources</resourcesDir>
                                         
<targetServerDirectory>${project.build.directory}/la1/assembly</targetServerDirectory>


Both the <resourcesDir> and <targetServerDirectory> are ignored.

Then on the archive goal:

                                        <execution>
                                                <id>package-la1</id>
                                                <phase>package</phase>
                                                <goals>
                                                        <goal>archive</goal>
                                                </goals>
                                                <configuration>
                                                        
<classifier>la1</classifier>
                                                        
<archiveTarGz>true</archiveTarGz>
                                                        
<archiveZip>false</archiveZip>
                                                        
<targetFile>${project.artifactId}-${project.version}-la1</targetFile>
                                                </configuration>
                                        </execution>

It also ignores the <targetFile> configuration.  This should’t be that hard, 
what’s going on?  Any help?

Best regards,
Alex soto


On Apr 20, 2016, at 4:14 PM, Alex Soto <[email protected]> wrote:

Is there a good example?  The one in the Karaf documentation page does not 
address this scenario, which is not uncommon; usually you will need different 
settings for each environment (DEV, TEST, UAT, PROD, etc.,) so cloning the 
project is not a practical approach.  I tried with profiles but that too is not 
very practical, since you have build the same project multiple times, and the 
resulting archives are not deployed correctly to the Maven repository.


On Apr 20, 2016, at 11:03 AM, Alex Soto <[email protected]> wrote:

Thank you JB,

Which goal should I use?


Best regards,
Alex Soto


On Apr 20, 2016, at 10:18 AM, Jean-Baptiste Onofré <[email protected]> wrote:

Hi Alex

Using execution with the goal should do the trick (instead of just plugin 
definition).

Regards
JB


-------- Original message --------
From: Alex Soto <[email protected]>
Date: 20/04/2016 15:19 (GMT+01:00)
To: [email protected]
Subject: karaf-maven-plugin multiple outputs with classifiers

Hello,

I am trying (unsuccessfully) to us the 'karaf-maven-plugin’ to generate 
multiple archives from the same pom, using classifiers and executions.

I have something like this:


<plugin>
<groupId>org.apache.karaf.tooling</groupId>
<artifactId>karaf-maven-plugin</artifactId>
<configuration>
<bootFeatures>
<feature>wrap</feature>
<feature>aries-blueprint</feature>
<feature>shell</feature>
<feature>shell-compat</feature>
<feature>feature</feature>
<feature>jaas</feature>
<feature>ssh</feature>
<feature>management</feature>
<feature>bundle</feature>
<feature>config</feature>
<feature>deployer</feature>
<feature>diagnostic</feature>
<feature>feature</feature>
<feature>instance</feature>
<feature>kar</feature>
<feature>log</feature>
<feature>package</feature>
<feature>service</feature>
<feature>system</feature>
</bootFeatures>
</configuration>
<executions>
<execution>
<id>la1</id>
<configuration>
<classifier>la1</classifier>
<resourcesDir>${project.build.outputDirectory}/la1</resourcesDir>
</configuration>
</execution>
<execution>
<id>la2</id>
<configuration>
<classifier>la2</classifier>
<resourcesDir>${project.build.outputDirectory}/la2</resourcesDir>
</configuration>
</execution>
</executions>
</plugin>


The difference between the two archives is in the resources, so I am specifying 
different ‘resourcesDir’ paths for each.   The list of boot features will be 
the same for both executions, so I put it in the general configuration section 
of the plugin.

When built, I am only getting a single archive output.
Is it possible to do this with the 'karaf-maven-plugin’ plugin?

Best regards,
Alex soto






Reply via email to