⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ear.java

📁 Use the links below to download a source distribution of Ant from one of our mirrors. It is good pra
💻 JAVA
字号:
/* *  Licensed to the Apache Software Foundation (ASF) under one or more *  contributor license agreements.  See the NOTICE file distributed with *  this work for additional information regarding copyright ownership. *  The ASF licenses this file to You under the Apache License, Version 2.0 *  (the "License"); you may not use this file except in compliance with *  the License.  You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * *  Unless required by applicable law or agreed to in writing, software *  distributed under the License is distributed on an "AS IS" BASIS, *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *  See the License for the specific language governing permissions and *  limitations under the License. * */package org.apache.tools.ant.taskdefs;import java.io.File;import java.io.IOException;import java.util.Locale;import org.apache.tools.ant.BuildException;import org.apache.tools.ant.Project;import org.apache.tools.ant.types.ZipFileSet;import org.apache.tools.ant.util.FileUtils;import org.apache.tools.zip.ZipOutputStream;/** * Creates a EAR archive. Based on WAR task * * @since Ant 1.4 * * @ant.task category="packaging" */public class Ear extends Jar {    private static final FileUtils FILE_UTILS = FileUtils.getFileUtils();    private File deploymentDescriptor;    private boolean descriptorAdded;    private static final String XML_DESCRIPTOR_PATH = "META-INF/application.xml";    /**     * Create an Ear task.     */    public Ear() {        super();        archiveType = "ear";        emptyBehavior = "create";    }    /**     * Set the destination file.     * @param earFile the destination file     * @deprecated since 1.5.x.     *             Use setDestFile(destfile) instead.     */    public void setEarfile(File earFile) {        setDestFile(earFile);    }    /**     * File to incorporate as application.xml.     * @param descr the descriptor file     */    public void setAppxml(File descr) {        deploymentDescriptor = descr;        if (!deploymentDescriptor.exists()) {            throw new BuildException("Deployment descriptor: "                                     + deploymentDescriptor                                     + " does not exist.");        }        // Create a ZipFileSet for this file, and pass it up.        ZipFileSet fs = new ZipFileSet();        fs.setFile(deploymentDescriptor);        fs.setFullpath(XML_DESCRIPTOR_PATH);        super.addFileset(fs);    }    /**     * Adds zipfileset.     *     * @param fs zipfileset to add     */    public void addArchives(ZipFileSet fs) {        // We just set the prefix for this fileset, and pass it up.        // Do we need to do this? LH        fs.setPrefix("/");        super.addFileset(fs);    }    /**     * Initialize the output stream.     * @param zOut the zip output stream.     * @throws IOException on I/O errors     * @throws BuildException on other errors     */    protected void initZipOutputStream(ZipOutputStream zOut)        throws IOException, BuildException {        // If no webxml file is specified, it's an error.        if (deploymentDescriptor == null && !isInUpdateMode()) {            throw new BuildException("appxml attribute is required", getLocation());        }        super.initZipOutputStream(zOut);    }    /**     * Overridden from Zip class to deal with application.xml     * @param file the file to add to the archive     * @param zOut the stream to write to     * @param vPath the name this entry shall have in the archive     * @param mode the Unix permissions to set.     * @throws IOException on error     */    protected void zipFile(File file, ZipOutputStream zOut, String vPath,                           int mode)        throws IOException {        // If the file being added is META-INF/application.xml, we        // warn if it's not the one specified in the "appxml"        // attribute - or if it's being added twice, meaning the same        // file is specified by the "appxml" attribute and in a        // <fileset> element.        String vPathLowerCase = vPath.toLowerCase(Locale.ENGLISH);        if (XML_DESCRIPTOR_PATH.equals(vPathLowerCase))  {            if (deploymentDescriptor != null                || !FILE_UTILS.fileNameEquals(deploymentDescriptor, file)                || descriptorAdded) {                log("Warning: selected " + archiveType                    + " files include a " + XML_DESCRIPTOR_PATH + " which will"                    + " be ignored (please use appxml attribute to "                    + archiveType + " task)",                        Project.MSG_WARN);            } else {                super.zipFile(file, zOut, vPath, mode);                descriptorAdded = true;            }        } else {            super.zipFile(file, zOut, vPath, mode);        }    }    /**     * Make sure we don't think we already have a application.xml next     * time this task gets executed.     */    protected void cleanUp() {        descriptorAdded = false;        super.cleanUp();    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -