maven-assembly doesn't support war format
-----------------------------------------

         Key: MNG-1274
         URL: http://jira.codehaus.org/browse/MNG-1274
     Project: Maven 2
        Type: Bug
  Components: maven-assembly-plugin  
    Versions: 2.0    
 Reporter: Jerome Lacoste


Trying to use the assembly plugin to repackage a war, I got the exception 
below. The functionality was needed to implemented multi-webstart application 
deployment in relation to the Webstart Plugin [1]

It fails miserably because of the missing webxml attribute required by the 
WebArchiver, triggered because the specified format is war.

I was told on #maven that the assembly is not meant to package war. I don't see 
why it couldn't :) So I mailed on @users [2]. Someone also asked for similar 
funcionality [3].
So repackaging a war is clearly an required functionality.

Should we consider the assembly plugin one way to implement this feature, and 
this is issue is indeed real?
Or should I take another approach, like move the assembly plugin execution as 
part of an earlier phase (e.g. process-resources) inside the war project ?

Some links

Links:
[1] http://docs.codehaus.org/display/MOJO/Webstart+Plugin
[2] http://thread.gmane.org/gmane.comp.jakarta.turbine.maven.user/29177
[3] http://thread.gmane.org/gmane.comp.jakarta.turbine.maven.user/29243

Here's my assmbly descriptor:

<assembly>
  <id>main</id>
  <formats>
    <format>war</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <dependencySets>
    <dependencySet>
      <outputDirectory>/</outputDirectory>
      <includes>
        <include>myproject:webapp</include>
      </includes>
      <unpack>true</unpack>
      <scope>runtime</scope>
    </dependencySet>
    <dependencySet>
      <outputDirectory>webstart</outputDirectory>
      <includes>
        <include>myproject:webstart1</include>
      </includes>
      <unpack>true</unpack>
      <scope>runtime</scope>
    </dependencySet>
  </dependencySets>
</assembly>

and here's a part of the pom

  <dependencies>

    <dependency>
      <groupId>myproject</groupId>
      <artifactId>webapp</artifactId>
      <version>${version}</version>
      <type>war</type>
    </dependency>

    <dependency>
      <groupId>myproject</groupId>
      <artifactId>webstart1</artifactId>
      <version>${version}</version>
      <type>zip</type>
    </dependency>

Here's the log:

[DEBUG] -- end configuration --
[INFO] [assembly:assembly]
[...]
[INFO] 
----------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] 
----------------------------------------------------------------------------
[INFO] Error creating assembly: webxml attribute is required

[INFO] 
----------------------------------------------------------------------------
[DEBUG] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Error creating
assembly: webxml attribute is required
       at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:544)
       at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:482)
       at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:452)
       at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:301)
       at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:214)
       at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:137)
       at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:316)
       at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:113)
       at org.apache.maven.cli.MavenCli.main(MavenCli.java:249)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
       at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
       at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
       at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoExecutionException: Error
creating assembly: webxml attribute is required
       at 
org.apache.maven.plugin.assembly.AssemblyMojo.execute(AssemblyMojo.java:173)
       at 
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:399)
       at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:519)
       ... 16 more
Caused by: org.codehaus.plexus.archiver.ArchiverException: webxml
attribute is required
       at 
org.codehaus.plexus.archiver.war.WarArchiver.initZipOutputStream(WarArchiver.java:139)
       at 
org.codehaus.plexus.archiver.zip.AbstractZipArchiver.createArchiveMain(AbstractZipArchiver.java:327)
       at 
org.codehaus.plexus.archiver.zip.AbstractZipArchiver.createArchive(AbstractZipArchiver.java:229)
       at 
org.apache.maven.plugin.assembly.AssemblyMojo.createArchive(AssemblyMojo.java:215)
       at 
org.apache.maven.plugin.assembly.AssemblyMojo.execute(AssemblyMojo.java:165)
       ... 18 more
[INFO] 
----------------------------------------------------------------------------
[INFO] Total time: 7 seconds
[INFO] Finished at: Fri Oct 21 12:44:25 CEST 2005
[INFO] Final Memory: 3M/7M
[INFO] --------------------------------------------

-- 
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, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to