You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Kek (JIRA)" <ji...@codehaus.org> on 2009/12/18 12:02:55 UTC

[jira] Created: (MASSEMBLY-457) The empty assemblies should be skipped in multimodule projects.

The empty assemblies should be skipped in multimodule projects.
---------------------------------------------------------------

                 Key: MASSEMBLY-457
                 URL: http://jira.codehaus.org/browse/MASSEMBLY-457
             Project: Maven 2.x Assembly Plugin
          Issue Type: Bug
    Affects Versions: 2.2-beta-5
         Environment: Windows7, java1.6, maven 2.2.1  or Linux + Hudson 1.33x 
            Reporter: Kek
            Priority: Critical
         Attachments: patch.txt, test-modules.zip

Our workspace contains

- multimodule project  (like in attached  test-modules.zip)
- defined assembly on parent to zip  src/main/config  or src/test/config  folders and attach the zip to module
- but some child-modules could have empty config folders

than we obtain

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to create assembly: Error creating assembly archive config: You must set at least one file.
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
	at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
	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:597)
	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: Failed to create assembly: Error creating assembly archive config: You must set at least one file.
	at org.apache.maven.plugin.assembly.mojos.AbstractAssemblyMojo.execute(AbstractAssemblyMojo.java:421)
	at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
	... 17 more
Caused by: org.apache.maven.plugin.assembly.archive.ArchiveCreationException: Error creating assembly archive config: You must set at least one file.
	at org.apache.maven.plugin.assembly.archive.DefaultAssemblyArchiver.createArchive(DefaultAssemblyArchiver.java:194)
	at org.apache.maven.plugin.assembly.mojos.AbstractAssemblyMojo.execute(AbstractAssemblyMojo.java:370)
	... 19 more
Caused by: org.codehaus.plexus.archiver.ArchiverException: You must set at least one file.
	at org.codehaus.plexus.archiver.zip.AbstractZipArchiver.createArchiveMain(AbstractZipArchiver.java:272)
	at org.codehaus.plexus.archiver.zip.AbstractZipArchiver.execute(AbstractZipArchiver.java:250)
	at org.codehaus.plexus.archiver.AbstractArchiver.createArchive(AbstractArchiver.java:852)
	at org.apache.maven.plugin.assembly.archive.archiver.AssemblyProxyArchiver.createArchive(AssemblyProxyArchiver.java:496)
	at org.apache.maven.plugin.assembly.archive.DefaultAssemblyArchiver.createArchive(DefaultAssemblyArchiver.java:190)
	... 20 more

I found the similar issue on maven-source-plugin:   http://jira.codehaus.org/browse/MSOURCES-44
So I suppose, that the problem could be solved in the same way.

May be, that this bug is duplicated with http://jira.codehaus.org/browse/MASSEMBLY-420, but I'm not sure.

The similar problem was with previous version of maven-jar-plugin, but current version is already repaired and works in same waz as maven-source-plugin. So we use the maven-jar-plugin instead of assembly-plugin  as workaround for this issue. But there are empty jars created, so this is not ideal and I prefere to use assembly-plugin.
It seems, that some incompatible changes was made to org.codehaus.plexus.archiver.zip.AbstractZipArchiver. 

So I look at sources and create some patch (attached to this issue) for DefaultAssemblyArchiver, this solves our problem and could be tested on test-modules.zip. 

I know, there could be used a "skip" parameter for assembly deactivation in submodules, but this solution is not effective for management in large projects (we have about 1000 submodules). May be - some new parameter "ignoreEmptyAssembly" should be added to switch on/off the behaviour of this patch.

Sorry that I do not provide any Junit-test, I tried to implement one, but I don´t know, how to use the EasyMock and extend existing DefaultAssemblyArchiverTest, but I want to help, so the test-modules.zip for simulation of the problem is attached. There are two child-modules, one contains src/main/config with some file and the other is empty. 


-- 
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

       

[jira] Updated: (MASSEMBLY-457) The empty assemblies should be skipped in multimodule projects.

Posted by "Dennis Lundberg (JIRA)" <ji...@codehaus.org>.
     [ http://jira.codehaus.org/browse/MASSEMBLY-457?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dennis Lundberg updated MASSEMBLY-457:
--------------------------------------

    Fix Version/s:     (was: 2.2)

> The empty assemblies should be skipped in multimodule projects.
> ---------------------------------------------------------------
>
>                 Key: MASSEMBLY-457
>                 URL: http://jira.codehaus.org/browse/MASSEMBLY-457
>             Project: Maven 2.x Assembly Plugin
>          Issue Type: Bug
>    Affects Versions: 2.2-beta-5
>         Environment: Windows7, java1.6, maven 2.2.1  or Linux + Hudson 1.33x 
>            Reporter: Kek
>            Assignee: John Casey
>            Priority: Critical
>         Attachments: patch.txt, test-modules.zip
>
>
> Our workspace contains
> - multimodule project  (like in attached  test-modules.zip)
> - defined assembly on parent to zip  src/main/config  or src/test/config  folders and attach the zip to module
> - but some child-modules could have empty config folders
> than we obtain
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to create assembly: Error creating assembly archive config: You must set at least one file.
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
> 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
> 	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
> 	at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
> 	at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
> 	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:597)
> 	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: Failed to create assembly: Error creating assembly archive config: You must set at least one file.
> 	at org.apache.maven.plugin.assembly.mojos.AbstractAssemblyMojo.execute(AbstractAssemblyMojo.java:421)
> 	at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
> 	... 17 more
> Caused by: org.apache.maven.plugin.assembly.archive.ArchiveCreationException: Error creating assembly archive config: You must set at least one file.
> 	at org.apache.maven.plugin.assembly.archive.DefaultAssemblyArchiver.createArchive(DefaultAssemblyArchiver.java:194)
> 	at org.apache.maven.plugin.assembly.mojos.AbstractAssemblyMojo.execute(AbstractAssemblyMojo.java:370)
> 	... 19 more
> Caused by: org.codehaus.plexus.archiver.ArchiverException: You must set at least one file.
> 	at org.codehaus.plexus.archiver.zip.AbstractZipArchiver.createArchiveMain(AbstractZipArchiver.java:272)
> 	at org.codehaus.plexus.archiver.zip.AbstractZipArchiver.execute(AbstractZipArchiver.java:250)
> 	at org.codehaus.plexus.archiver.AbstractArchiver.createArchive(AbstractArchiver.java:852)
> 	at org.apache.maven.plugin.assembly.archive.archiver.AssemblyProxyArchiver.createArchive(AssemblyProxyArchiver.java:496)
> 	at org.apache.maven.plugin.assembly.archive.DefaultAssemblyArchiver.createArchive(DefaultAssemblyArchiver.java:190)
> 	... 20 more
> I found the similar issue on maven-source-plugin:   http://jira.codehaus.org/browse/MSOURCES-44
> So I suppose, that the problem could be solved in the same way.
> May be, that this bug is duplicated with http://jira.codehaus.org/browse/MASSEMBLY-420, but I'm not sure.
> The similar problem was with previous version of maven-jar-plugin, but current version is already repaired and works in same waz as maven-source-plugin. So we use the maven-jar-plugin instead of assembly-plugin  as workaround for this issue. But there are empty jars created, so this is not ideal and I prefere to use assembly-plugin.
> It seems, that some incompatible changes was made to org.codehaus.plexus.archiver.zip.AbstractZipArchiver. 
> So I look at sources and create some patch (attached to this issue) for DefaultAssemblyArchiver, this solves our problem and could be tested on test-modules.zip. 
> I know, there could be used a "skip" parameter for assembly deactivation in submodules, but this solution is not effective for management in large projects (we have about 1000 submodules). May be - some new parameter "ignoreEmptyAssembly" should be added to switch on/off the behaviour of this patch.
> Sorry that I do not provide any Junit-test, I tried to implement one, but I don´t know, how to use the EasyMock and extend existing DefaultAssemblyArchiverTest, but I want to help, so the test-modules.zip for simulation of the problem is attached. There are two child-modules, one contains src/main/config with some file and the other is empty. 

-- 
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

       

[jira] Commented: (MASSEMBLY-457) The empty assemblies should be skipped in multimodule projects.

Posted by "Andrew Phillips (JIRA)" <ji...@codehaus.org>.
    [ http://jira.codehaus.org/browse/MASSEMBLY-457?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=236543#action_236543 ] 

Andrew Phillips commented on MASSEMBLY-457:
-------------------------------------------

@John: I see your point. However, Kek already mentioned this possibility in the description and indicated why it isn't a sufficient solution in some situations:

> I know, there could be used a "skip" parameter for assembly deactivation 
> in submodules, but this solution is not effective for management in large 
> projects (we have about 1000 submodules). 

Seems like a valid point, too. So whilst auto-skipping by default would indeed be a dangerous idea, is there any reason why auto-skipping behaviour couldn't be explicitly enabled via some parameter? Again, from the description:

> May be - some new parameter "ignoreEmptyAssembly" should be added to 
> switch on/off the behaviour of this patch.

> The empty assemblies should be skipped in multimodule projects.
> ---------------------------------------------------------------
>
>                 Key: MASSEMBLY-457
>                 URL: http://jira.codehaus.org/browse/MASSEMBLY-457
>             Project: Maven 2.x Assembly Plugin
>          Issue Type: Bug
>    Affects Versions: 2.2-beta-5
>         Environment: Windows7, java1.6, maven 2.2.1  or Linux + Hudson 1.33x 
>            Reporter: Kek
>            Assignee: John Casey
>            Priority: Critical
>             Fix For: 2.2-beta-6
>
>         Attachments: patch.txt, test-modules.zip
>
>
> Our workspace contains
> - multimodule project  (like in attached  test-modules.zip)
> - defined assembly on parent to zip  src/main/config  or src/test/config  folders and attach the zip to module
> - but some child-modules could have empty config folders
> than we obtain
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to create assembly: Error creating assembly archive config: You must set at least one file.
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
> 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
> 	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
> 	at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
> 	at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
> 	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:597)
> 	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: Failed to create assembly: Error creating assembly archive config: You must set at least one file.
> 	at org.apache.maven.plugin.assembly.mojos.AbstractAssemblyMojo.execute(AbstractAssemblyMojo.java:421)
> 	at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
> 	... 17 more
> Caused by: org.apache.maven.plugin.assembly.archive.ArchiveCreationException: Error creating assembly archive config: You must set at least one file.
> 	at org.apache.maven.plugin.assembly.archive.DefaultAssemblyArchiver.createArchive(DefaultAssemblyArchiver.java:194)
> 	at org.apache.maven.plugin.assembly.mojos.AbstractAssemblyMojo.execute(AbstractAssemblyMojo.java:370)
> 	... 19 more
> Caused by: org.codehaus.plexus.archiver.ArchiverException: You must set at least one file.
> 	at org.codehaus.plexus.archiver.zip.AbstractZipArchiver.createArchiveMain(AbstractZipArchiver.java:272)
> 	at org.codehaus.plexus.archiver.zip.AbstractZipArchiver.execute(AbstractZipArchiver.java:250)
> 	at org.codehaus.plexus.archiver.AbstractArchiver.createArchive(AbstractArchiver.java:852)
> 	at org.apache.maven.plugin.assembly.archive.archiver.AssemblyProxyArchiver.createArchive(AssemblyProxyArchiver.java:496)
> 	at org.apache.maven.plugin.assembly.archive.DefaultAssemblyArchiver.createArchive(DefaultAssemblyArchiver.java:190)
> 	... 20 more
> I found the similar issue on maven-source-plugin:   http://jira.codehaus.org/browse/MSOURCES-44
> So I suppose, that the problem could be solved in the same way.
> May be, that this bug is duplicated with http://jira.codehaus.org/browse/MASSEMBLY-420, but I'm not sure.
> The similar problem was with previous version of maven-jar-plugin, but current version is already repaired and works in same waz as maven-source-plugin. So we use the maven-jar-plugin instead of assembly-plugin  as workaround for this issue. But there are empty jars created, so this is not ideal and I prefere to use assembly-plugin.
> It seems, that some incompatible changes was made to org.codehaus.plexus.archiver.zip.AbstractZipArchiver. 
> So I look at sources and create some patch (attached to this issue) for DefaultAssemblyArchiver, this solves our problem and could be tested on test-modules.zip. 
> I know, there could be used a "skip" parameter for assembly deactivation in submodules, but this solution is not effective for management in large projects (we have about 1000 submodules). May be - some new parameter "ignoreEmptyAssembly" should be added to switch on/off the behaviour of this patch.
> Sorry that I do not provide any Junit-test, I tried to implement one, but I don´t know, how to use the EasyMock and extend existing DefaultAssemblyArchiverTest, but I want to help, so the test-modules.zip for simulation of the problem is attached. There are two child-modules, one contains src/main/config with some file and the other is empty. 

-- 
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

       

[jira] Closed: (MASSEMBLY-457) The empty assemblies should be skipped in multimodule projects.

Posted by "John Casey (JIRA)" <ji...@codehaus.org>.
     [ http://jira.codehaus.org/browse/MASSEMBLY-457?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

John Casey closed MASSEMBLY-457.
--------------------------------

       Resolution: Won't Fix
    Fix Version/s: 2.2-beta-6
         Assignee: John Casey

Simply override the assembly configuration on these projects to set skipAssembly == true. You can even make the value of <skipAssembly/> using a property, and set that property value to true in the parent POM...then override that property value in the children that don't have the config directories.

Auto-skipping like this patch has would be dangerous since they'd cause other types of builds to fail silently when they should be building assemblies...as in other cases where an incorrect assembly descriptor results in no files being selected for the assembly.

> The empty assemblies should be skipped in multimodule projects.
> ---------------------------------------------------------------
>
>                 Key: MASSEMBLY-457
>                 URL: http://jira.codehaus.org/browse/MASSEMBLY-457
>             Project: Maven 2.x Assembly Plugin
>          Issue Type: Bug
>    Affects Versions: 2.2-beta-5
>         Environment: Windows7, java1.6, maven 2.2.1  or Linux + Hudson 1.33x 
>            Reporter: Kek
>            Assignee: John Casey
>            Priority: Critical
>             Fix For: 2.2-beta-6
>
>         Attachments: patch.txt, test-modules.zip
>
>
> Our workspace contains
> - multimodule project  (like in attached  test-modules.zip)
> - defined assembly on parent to zip  src/main/config  or src/test/config  folders and attach the zip to module
> - but some child-modules could have empty config folders
> than we obtain
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to create assembly: Error creating assembly archive config: You must set at least one file.
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
> 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
> 	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
> 	at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
> 	at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
> 	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:597)
> 	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: Failed to create assembly: Error creating assembly archive config: You must set at least one file.
> 	at org.apache.maven.plugin.assembly.mojos.AbstractAssemblyMojo.execute(AbstractAssemblyMojo.java:421)
> 	at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
> 	... 17 more
> Caused by: org.apache.maven.plugin.assembly.archive.ArchiveCreationException: Error creating assembly archive config: You must set at least one file.
> 	at org.apache.maven.plugin.assembly.archive.DefaultAssemblyArchiver.createArchive(DefaultAssemblyArchiver.java:194)
> 	at org.apache.maven.plugin.assembly.mojos.AbstractAssemblyMojo.execute(AbstractAssemblyMojo.java:370)
> 	... 19 more
> Caused by: org.codehaus.plexus.archiver.ArchiverException: You must set at least one file.
> 	at org.codehaus.plexus.archiver.zip.AbstractZipArchiver.createArchiveMain(AbstractZipArchiver.java:272)
> 	at org.codehaus.plexus.archiver.zip.AbstractZipArchiver.execute(AbstractZipArchiver.java:250)
> 	at org.codehaus.plexus.archiver.AbstractArchiver.createArchive(AbstractArchiver.java:852)
> 	at org.apache.maven.plugin.assembly.archive.archiver.AssemblyProxyArchiver.createArchive(AssemblyProxyArchiver.java:496)
> 	at org.apache.maven.plugin.assembly.archive.DefaultAssemblyArchiver.createArchive(DefaultAssemblyArchiver.java:190)
> 	... 20 more
> I found the similar issue on maven-source-plugin:   http://jira.codehaus.org/browse/MSOURCES-44
> So I suppose, that the problem could be solved in the same way.
> May be, that this bug is duplicated with http://jira.codehaus.org/browse/MASSEMBLY-420, but I'm not sure.
> The similar problem was with previous version of maven-jar-plugin, but current version is already repaired and works in same waz as maven-source-plugin. So we use the maven-jar-plugin instead of assembly-plugin  as workaround for this issue. But there are empty jars created, so this is not ideal and I prefere to use assembly-plugin.
> It seems, that some incompatible changes was made to org.codehaus.plexus.archiver.zip.AbstractZipArchiver. 
> So I look at sources and create some patch (attached to this issue) for DefaultAssemblyArchiver, this solves our problem and could be tested on test-modules.zip. 
> I know, there could be used a "skip" parameter for assembly deactivation in submodules, but this solution is not effective for management in large projects (we have about 1000 submodules). May be - some new parameter "ignoreEmptyAssembly" should be added to switch on/off the behaviour of this patch.
> Sorry that I do not provide any Junit-test, I tried to implement one, but I don´t know, how to use the EasyMock and extend existing DefaultAssemblyArchiverTest, but I want to help, so the test-modules.zip for simulation of the problem is attached. There are two child-modules, one contains src/main/config with some file and the other is empty. 

-- 
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