src/main/java/org/codehaus/plexus/archiver/war/WarArchiver.java
protected void zipFile( ArchiveEntry entry, ZipArchiveOutputStream zOut, String vPath )
        throws IOException, ArchiverException
    {
        // If the file being added is WEB-INF/web.xml, we warn if it's
        // not the one specified in the "webxml" attribute - or if
        // it's being added twice, meaning the same file is specified
        // by the "webxml" attribute and in a <fileset> element.
        if ( vPath.equalsIgnoreCase( "WEB-INF/web.xml" ) )
        {
            if ( descriptorAdded || ( expectWebXml
                 && ( deploymentDescriptor == null
                     || !ResourceUtils.isCanonicalizedSame( entry.getResource(), deploymentDescriptor ) ) ) )
            {
                getLogger().warn( "Warning: selected " + archiveType
                                  + " files include a WEB-INF/web.xml which will be ignored "
                                  + "\n(webxml attribute is missing from "
                                  + archiveType + " task, or ignoreWebxml attribute is specified as 'true')" );
            }
            else
            {
                super.zipFile( entry, zOut, vPath );
                descriptorAdded = true;
            }
        }
        else
        {
            super.zipFile( entry, zOut, vPath );
        }
    }
protected void zipFile( ArchiveEntry entry, ZipArchiveOutputStream zOut, String vPath )
        throws IOException, ArchiverException
    {
        // If the file being added is WEB-INF/web.xml, we warn if it's
        // not the one specified in the "webxml" attribute - or if
        // it's being added twice, meaning the same file is specified
        // by the "webxml" attribute and in a <fileset> element.
        if ( vPath.equalsIgnoreCase( "WEB-INF/web.xml" ) )
        {
            if ( descriptorAdded || ( expectWebXml
                 && ( deploymentDescriptor == null
                     || !ResourceUtils.isCanonicalizedSame( entry.getResource(), deploymentDescriptor ) ) ) )
            {
                getLogger().warn( "Warning: selected " + archiveType
                                  + " files include a WEB-INF/web.xml which will be ignored "
                                  + "\n(webxml attribute is missing from "
                                  + archiveType + " task, or ignoreWebxml attribute is specified as 'true')" );
            }
            else
            {
                super.zipFile( entry, zOut, vPath );
                descriptorAdded = true;
            }
        }
        else
        {
            super.zipFile( entry, zOut, vPath );
        }
    }
Overridden from ZipArchiver class to deal with web.xml