[ 
http://jira.codehaus.org/browse/MOJO-539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_122568
 ] 

Ben Middleton commented on MOJO-539:
------------------------------------

I've attached a patch with a fix for this, essentially using the code posted 
earlier with some modifications required due to other updates in the codebase.
The patch is to be applied to trunk.

It enables the following:
- usage of <repositoryName> tag to override the default "repo" for the 
destination repository; e.g. <repositoryName>lib</repositoryName> puts the 
output jars etc. into "lib" directory
- usage of flat repository layout  (with 
<repositoryLayout>flat</repositoryLayout>)
- substitution of the repositoryName used in the config file into the generated 
binary scripts - as suggested in earlier comments, a @REPO@ token is used.


> [appassembler] collaborating with maven-assembly-plugin
> -------------------------------------------------------
>
>                 Key: MOJO-539
>                 URL: http://jira.codehaus.org/browse/MOJO-539
>             Project: Mojo
>          Issue Type: Improvement
>          Components: appassembler
>            Reporter: Mathieu Champlon
>            Assignee: Brett Porter
>         Attachments: MOJO-539-1.patch, MOJO-539-2.patch, MOJO-539-3.patch
>
>
> I find the appassembler-maven-plugin really valuable, especially since I was 
> just about to start manually writing my own bat/sh scripts...
> However I wonder if this plugin does not partly overlap with the 
> maven-assembly-plugin [1] or the dependency-maven-plugin [2].
> Maybe appassembler should be only about generating scripts and be able to 
> collaborate with the other plugins for the remaining part ?
> My requirement was to have appassembler manage the following layout :
> . bin/ scripts
> . lib/ all jars
> Thus a good old flat distribution (like maven itself for example).
> The maven-assembly-plugin is already able to handle the 'lib/' part and I was 
> looking for a solution to have appassembler collaborate with it.
> I realized this was not exactly possible because of the way appassembler 
> outputs artifacts to a repository.
> So I patched it :
>  . the first step was to add a 'repositoryName' configuration variable in 
> order to be able to customize the hard-coded "repo" (so I can set it to "lib" 
> instead).
>  . the next step was to add a 'flat' repositoryLayout that would install all 
> the artifacts in the "repo" root directory.
>  . the last step was to add a 'installArtifacts' boolean configuration flag 
> to be able not to generate the "repo" (this feature is actually not really 
> mandatory).
> Therefore I was able to achieve my goal by combining appassembler with the 
> assembly plugin : appassembler only creates "bin" scripts which are then 
> included in the assembly process.
> Here is what my pom looks like :
>       <plugin>
>         <groupId>org.codehaus.mojo</groupId>
>         <artifactId>appassembler-maven-plugin</artifactId>
>         <configuration>
>           <repositoryLayout>flat</repositoryLayout>
>           <repositoryName>lib</repositoryName>
>           <installArtifacts>false</installArtifacts>
>           <programs>
>             <program>
>               <mainClass>com.mycompany.app.App</mainClass>
>               <name>app</name>
>             </program>
>           </programs>
>         </configuration>
>         <executions>
>           <execution>
>             <phase>package</phase>
>             <goals>
>               <goal>assemble</goal>
>             </goals>
>           </execution>
>         </executions>
>       </plugin>
>       <plugin>
>         <groupId>org.apache.maven.plugins</groupId>
>         <artifactId>maven-jar-plugin</artifactId>
>       </plugin>
>       <plugin>
>         <groupId>org.apache.maven.plugins</groupId>
>         <artifactId>maven-assembly-plugin</artifactId>
>         <configuration>
>           <descriptors>
>             <descriptor>assembly.xml</descriptor>
>           </descriptors>
>         </configuration>
>         <executions>
>           <execution>
>             <phase>package</phase>
>             <goals>
>               <goal>assembly</goal>
>             </goals>
>           </execution>
>         </executions>
>       </plugin>
> And the assembly.xml configuration file :
> <assembly>
>   <id>bin</id>
>   <formats>
>     <format>tar.gz</format>
>     <format>tar.bz2</format>
>     <format>zip</format>
>   </formats>
>   <fileSets>
>     <fileSet>
>       <directory>target/appassembler/bin</directory>
>       <outputDirectory>bin</outputDirectory>
>     </fileSet>
>   </fileSets>
>   <dependencySets>
>     <dependencySet>
>       <outputDirectory>lib</outputDirectory>
>     </dependencySet>
>   </dependencySets>
> </assembly>
> [1] http://maven.apache.org/plugins/maven-assembly-plugin/introduction.html
> [2] http://mojo.codehaus.org/dependency-maven-plugin/introduction.html

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to