📄 jspc.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.optional.jsp;import java.io.File;import java.util.Date;import java.util.Enumeration;import java.util.Vector;import org.apache.tools.ant.BuildException;import org.apache.tools.ant.DirectoryScanner;import org.apache.tools.ant.Project;import org.apache.tools.ant.taskdefs.MatchingTask;import org.apache.tools.ant.taskdefs.optional.jsp.compilers.JspCompilerAdapter;import org.apache.tools.ant.taskdefs.optional.jsp.compilers.JspCompilerAdapterFactory;import org.apache.tools.ant.types.Path;import org.apache.tools.ant.types.Reference;/** * Runs a JSP compiler. * * <p> This task takes the given jsp files and compiles them into java * files. It is then up to the user to compile the java files into classes. * * <p> The task requires the srcdir and destdir attributes to be * set. This Task is a MatchingTask, so the files to be compiled can be * specified using includes/excludes attributes or nested include/exclude * elements. Optional attributes are verbose (set the verbosity level passed * to jasper), package (name of the destination package for generated java * classes and classpath (the classpath to use when running the jsp * compiler). * <p> This task supports the nested elements classpath (A Path) and * classpathref (A Reference) which can be used in preference to the * attribute classpath, if the jsp compiler is not already in the ant * classpath. * * <p><h4>Usage</h4> * <pre> * <jspc srcdir="${basedir}/src/war" * destdir="${basedir}/gensrc" * package="com.i3sp.jsp" * verbose="9"> * <include name="**\/*.jsp" /> * </jspc> * </pre> * * <p> Large Amount of cutting and pasting from the Javac task... * @since 1.5 */public class JspC extends MatchingTask { private Path classpath; private Path compilerClasspath; private Path src; private File destDir; private String packageName; /** name of the compiler to use */ private String compilerName = "jasper"; /** * -ieplugin <clsid> Java Plugin classid for Internet Explorer */ private String iepluginid; private boolean mapped; private int verbose = 0; // CheckStyle:VisibilityModifier OFF - bc protected Vector compileList = new Vector(); Vector javaFiles = new Vector(); /** * flag to control action on execution trouble */ protected boolean failOnError = true; /** * -uriroot <dir> The root directory that uri files should be resolved * against, */ private File uriroot; /** * -webinc <file> Creates partial servlet mappings for the -webapp option */ private File webinc; /** * -webxml <file> Creates a complete web.xml when using the -webapp option. */ private File webxml; /** * web apps */ protected WebAppParameter webApp; private static final String FAIL_MSG = "Compile failed, messages should have been provided."; // CheckStyle:VisibilityModifier ON /** * Set the path for source JSP files. * @param srcDir the source path. */ public void setSrcDir(Path srcDir) { if (src == null) { src = srcDir; } else { src.append(srcDir); } } /** * Get the source dir. * @return the source path. */ public Path getSrcDir() { return src; } /** * Set the destination directory into which the JSP source * files should be compiled. * @param destDir the destination directory. */ public void setDestdir(File destDir) { this.destDir = destDir; } /** * Get the destination directory. * @return the directory. */ public File getDestdir() { return destDir; } /** * Set the name of the package the compiled jsp files should be in. * @param pkg the name of the package. */ public void setPackage(String pkg) { this.packageName = pkg; } /** * Get the name of the package. * @return the package. */ public String getPackage() { return packageName; } /** * Set the verbose level of the compiler * @param i the verbose level to use. */ public void setVerbose(int i) { verbose = i; } /** * Get the verbose level. * @return the level. */ public int getVerbose() { return verbose; } /** * Whether or not the build should halt if compilation fails. * Defaults to <code>true</code>. * @param fail a <code>boolean</code> value. */ public void setFailonerror(boolean fail) { failOnError = fail; } /** * Gets the failonerror flag. * @return the flag. */ public boolean getFailonerror() { return failOnError; } /** * Get the IE CLASSID value. * @return the value. */ public String getIeplugin() { return iepluginid; } /** * Java Plugin CLASSID for Internet Explorer * @param iepluginid the id to use. */ public void setIeplugin(String iepluginid) { this.iepluginid = iepluginid; } /** * If true, generate separate write() calls for each HTML line * in the JSP. * @return mapping status */ public boolean isMapped() { return mapped; } /** * If true, generate separate write() calls for each HTML line * in the JSP. * @param mapped a <code>boolean</code> value. */ public void setMapped(boolean mapped) { this.mapped = mapped; } /** * The URI context of relative URI references in the JSP pages. * If it does not exist then it is derived from the location * of the file relative to the declared or derived value of uriroot. * * @param uribase The new Uribase value */ public void setUribase(File uribase) { log("Uribase is currently an unused parameter", Project.MSG_WARN); } /** * Get the uri base value. * @return the value. */ public File getUribase() { return uriroot; } /** * The root directory that uri files should be resolved * against. (Default is the directory jspc is invoked from) * * @param uriroot The new Uribase value */ public void setUriroot(File uriroot) { this.uriroot = uriroot; } /** * Get the uri root value. * @return the value. */ public File getUriroot() { return uriroot; } /** * Set the classpath to be used for this compilation. * @param cp the path to be used. */ public void setClasspath(Path cp) { if (classpath == null) { classpath = cp; } else { classpath.append(cp); } } /** * Adds a path to the classpath. * @return a path to be configured. */ public Path createClasspath() { if (classpath == null) { classpath = new Path(getProject()); } return classpath.createPath(); } /** * Adds a reference to a classpath defined elsewhere * @param r a reference to a classpath. */ public void setClasspathRef(Reference r) { createClasspath().setRefid(r); } /** * Get the classpath. * @return the classpath. */ public Path getClasspath() { return classpath; } /** * Set the classpath to be used to find this compiler adapter * @param cp the compiler classpath. */ public void setCompilerclasspath(Path cp) { if (compilerClasspath == null) { compilerClasspath = cp; } else { compilerClasspath.append(cp); } } /** * get the classpath used to find the compiler adapter * @return the compiler classpath. */ public Path getCompilerclasspath() { return compilerClasspath; } /** * Support nested compiler classpath, used to locate compiler adapter * @return a path to be configured. */ public Path createCompilerclasspath() { if (compilerClasspath == null) { compilerClasspath = new Path(getProject()); } return compilerClasspath.createPath(); } /** * Filename for web.xml. * * @param webxml The new Webxml value
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -