public class Javac extends MatchingTask
When this task executes, it will recursively scan the sourcedir and destdir looking for Java source files to compile. This task makes its compile decision based on timestamp.
Modifier and Type | Class and Description |
---|---|
class |
Javac.ImplementationSpecificArgument
Adds an "compiler" attribute to Commandline$Attribute used to
filter command line attributes based on the current
implementation.
|
Modifier and Type | Field and Description |
---|---|
protected java.io.File[] |
compileList |
protected boolean |
failOnError |
protected boolean |
listFiles |
fileset
description, location, project
Constructor and Description |
---|
Javac()
Javac task for compilation of Java files.
|
Modifier and Type | Method and Description |
---|---|
void |
add(CompilerAdapter adapter)
Set the compiler adapter explicitly.
|
protected void |
checkParameters()
Check that all required attributes have been set and nothing
silly has been entered.
|
protected void |
compile()
Perform the compilation.
|
Path |
createBootclasspath()
Adds a path to the bootclasspath.
|
Path |
createClasspath()
Adds a path to the classpath.
|
Javac.ImplementationSpecificArgument |
createCompilerArg()
Adds an implementation specific command-line argument.
|
Path |
createCompilerClasspath()
The classpath to use when loading the compiler implementation
if it is not a built-in one.
|
Path |
createExtdirs()
Adds a path to extdirs.
|
Path |
createModulepath()
Adds a path to the modulepath.
|
Path |
createModulesourcepath()
Adds a path to modulesourcepath.
|
Path |
createSourcepath()
Adds a path to sourcepath.
|
Path |
createSrc()
Adds a path for source compilation.
|
Path |
createUpgrademodulepath()
Adds a path to the upgrademodulepath.
|
void |
execute()
Executes the task.
|
Path |
getBootclasspath()
Gets the bootclasspath that will be used to compile the classes
against.
|
Path |
getClasspath()
Gets the classpath to be used for this compilation.
|
java.lang.String |
getCompiler()
The implementation for this particular task.
|
java.lang.String |
getCompilerVersion()
The implementation for this particular task.
|
java.lang.String[] |
getCurrentCompilerArgs()
Get the additional implementation specific command line arguments.
|
boolean |
getDebug()
Gets the debug flag.
|
java.lang.String |
getDebugLevel()
Get the value of debugLevel.
|
boolean |
getDepend()
Gets the depend flag.
|
boolean |
getDeprecation()
Gets the deprecation flag.
|
java.io.File |
getDestdir()
Gets the destination directory into which the java source files
should be compiled.
|
java.lang.String |
getEncoding()
Gets the java source file encoding name.
|
java.lang.String |
getExecutable()
The value of the executable attribute, if any.
|
Path |
getExtdirs()
Gets the extension directories that will be used during the
compilation.
|
boolean |
getFailonerror()
Gets the failonerror flag.
|
java.io.File[] |
getFileList()
Gets the list of files to be compiled.
|
boolean |
getIncludeantruntime()
Gets whether or not the ant classpath is to be included in the classpath.
|
boolean |
getIncludejavaruntime()
Gets whether or not the java runtime should be included in this
task's classpath.
|
java.lang.String |
getJavacExecutable()
The name of the javac executable to use in fork-mode.
|
boolean |
getListfiles()
Get the listfiles flag.
|
java.lang.String |
getMemoryInitialSize()
Gets the memoryInitialSize flag.
|
java.lang.String |
getMemoryMaximumSize()
Gets the memoryMaximumSize flag.
|
Path |
getModulepath()
Gets the modulepath to be used for this compilation.
|
Path |
getModulesourcepath()
Gets the modulesourcepath to be used for this compilation.
|
java.io.File |
getNativeHeaderDir()
Gets the destination directory into which the generated native
header files should be placed.
|
boolean |
getNowarn()
Should the -nowarn option be used.
|
boolean |
getOptimize()
Gets the optimize flag.
|
java.lang.String |
getRelease()
Gets the version to use for the
--release switch that
combines source , target and setting the
bootclasspath. |
java.lang.String |
getSource()
Get the value of source.
|
Path |
getSourcepath()
Gets the sourcepath to be used for this compilation.
|
Path |
getSrcdir()
Gets the source dirs to find the source java files.
|
protected java.lang.String |
getSystemJavac() |
java.lang.String |
getTarget()
Gets the target VM that the classes will be compiled for.
|
boolean |
getTaskSuccess()
Get the result of the javac task (success or failure).
|
java.io.File |
getTempdir()
Where Ant should place temporary files.
|
Path |
getUpgrademodulepath()
Gets the upgrademodulepath to be used for this compilation.
|
boolean |
getVerbose()
Gets the verbose flag.
|
boolean |
isForkedJavac()
Is this a forked invocation of JDK's javac?
|
boolean |
isIncludeDestClasses()
Get the value of the includeDestClasses property.
|
protected boolean |
isJdkCompiler(java.lang.String compilerImpl)
Is the compiler implementation a jdk compiler
|
protected Path |
recreateSrc()
Recreate src.
|
protected void |
resetFileLists()
Clear the list of files to be compiled and copied..
|
protected void |
scanDir(java.io.File srcDir,
java.io.File destDir,
java.lang.String[] files)
Scans the directory looking for source files to be compiled.
|
void |
setBootclasspath(Path bootclasspath)
Sets the bootclasspath that will be used to compile the classes
against.
|
void |
setBootClasspathRef(Reference r)
Adds a reference to a classpath defined elsewhere.
|
void |
setClasspath(Path classpath)
Set the classpath to be used for this compilation.
|
void |
setClasspathRef(Reference r)
Adds a reference to a classpath defined elsewhere.
|
void |
setCompiler(java.lang.String compiler)
Choose the implementation for this particular task.
|
void |
setCreateMissingPackageInfoClass(boolean b)
Whether package-info.class files will be created by Ant
matching package-info.java files that have been compiled but
didn't create class files themselves.
|
void |
setDebug(boolean debug)
Indicates whether source should be compiled
with debug information; defaults to off.
|
void |
setDebugLevel(java.lang.String v)
Keyword list to be appended to the -g command-line switch.
|
void |
setDepend(boolean depend)
Enables dependency-tracking for compilers
that support this (jikes and classic).
|
void |
setDeprecation(boolean deprecation)
Indicates whether source should be
compiled with deprecation information; defaults to off.
|
void |
setDestdir(java.io.File destDir)
Set the destination directory into which the Java source
files should be compiled.
|
void |
setEncoding(java.lang.String encoding)
Set the Java source file encoding name.
|
void |
setErrorProperty(java.lang.String errorProperty)
The property to set on compilation failure.
|
void |
setExecutable(java.lang.String forkExec)
Sets the name of the javac executable.
|
void |
setExtdirs(Path extdirs)
Sets the extension directories that will be used during the
compilation.
|
void |
setFailonerror(boolean fail)
Indicates whether the build will continue
even if there are compilation errors; defaults to true.
|
void |
setFork(boolean f)
If true, forks the javac compiler.
|
void |
setIncludeantruntime(boolean include)
If true, includes Ant's own classpath in the classpath.
|
void |
setIncludeDestClasses(boolean includeDestClasses)
This property controls whether to include the
destination classes directory in the classpath
given to the compiler.
|
void |
setIncludejavaruntime(boolean include)
If true, includes the Java runtime libraries in the classpath.
|
void |
setListfiles(boolean list)
If true, list the source files being handed off to the compiler.
|
void |
setMemoryInitialSize(java.lang.String memoryInitialSize)
The initial size of the memory for the underlying VM
if javac is run externally; ignored otherwise.
|
void |
setMemoryMaximumSize(java.lang.String memoryMaximumSize)
The maximum size of the memory for the underlying VM
if javac is run externally; ignored otherwise.
|
void |
setModulepath(Path mp)
Set the modulepath to be used for this compilation.
|
void |
setModulepathRef(Reference r)
Adds a reference to a modulepath defined elsewhere.
|
void |
setModulesourcepath(Path msp)
Set the modulesourcepath to be used for this compilation.
|
void |
setModulesourcepathRef(Reference r)
Adds a reference to a modulesourcepath defined elsewhere.
|
void |
setNativeHeaderDir(java.io.File nhDir)
Set the destination directory into which the generated native
header files should be placed.
|
void |
setNowarn(boolean flag)
If true, enables the -nowarn option.
|
void |
setOptimize(boolean optimize)
If true, compiles with optimization enabled.
|
void |
setProceed(boolean proceed) |
void |
setRelease(java.lang.String release)
Sets the version to use for the
--release switch that
combines source , target and setting the
bootclasspath. |
void |
setSource(java.lang.String v)
Value of the -source command-line switch; will be ignored by
all implementations except modern, jikes and gcj (gcj uses
-fsource).
|
void |
setSourcepath(Path sourcepath)
Set the sourcepath to be used for this compilation.
|
void |
setSourcepathRef(Reference r)
Adds a reference to a source path defined elsewhere.
|
void |
setSrcdir(Path srcDir)
Set the source directories to find the source Java files.
|
void |
setTarget(java.lang.String target)
Sets the target VM that the classes will be compiled for.
|
void |
setTempdir(java.io.File tmpDir)
Where Ant should place temporary files.
|
void |
setUpdatedProperty(java.lang.String updatedProperty)
The property to set on compilation success.
|
void |
setUpgrademodulepath(Path ump)
Set the upgrademodulepath to be used for this compilation.
|
void |
setUpgrademodulepathRef(Reference r)
Adds a reference to the upgrademodulepath defined elsewhere.
|
void |
setVerbose(boolean verbose)
If true, asks the compiler for verbose output.
|
add, addAnd, addContains, addContainsRegexp, addCustom, addDate, addDepend, addDepth, addDifferent, addFilename, addMajority, addModified, addNone, addNot, addOr, addPresent, addSelector, addSize, addType, appendSelector, createExclude, createExcludesFile, createInclude, createIncludesFile, createPatternSet, getDirectoryScanner, getImplicitFileSet, getSelectors, hasSelectors, selectorCount, selectorElements, setCaseSensitive, setDefaultexcludes, setExcludes, setExcludesfile, setFollowSymlinks, setIncludes, setIncludesfile, setProject, XsetIgnore, XsetItems
bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType
clone, getDescription, getLocation, getProject, setDescription, setLocation
protected boolean failOnError
protected boolean listFiles
protected java.io.File[] compileList
public java.lang.String getDebugLevel()
public void setDebugLevel(java.lang.String v)
v
- Value to assign to debugLevel.public java.lang.String getSource()
public void setSource(java.lang.String v)
If you use this attribute together with jikes or gcj, you must make sure that your version of jikes supports the -source switch.
Legal values are 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, and any integral number bigger than 4 - by default, no -source argument will be used at all.
v
- Value to assign to source.public Path createSrc()
protected Path recreateSrc()
public void setSrcdir(Path srcDir)
srcDir
- the source directories as a pathpublic Path getSrcdir()
public void setDestdir(java.io.File destDir)
destDir
- the destination directorpublic java.io.File getDestdir()
public void setNativeHeaderDir(java.io.File nhDir)
nhDir
- where to place generated native header filespublic java.io.File getNativeHeaderDir()
public void setSourcepath(Path sourcepath)
sourcepath
- the source pathpublic Path getSourcepath()
public Path createSourcepath()
public void setSourcepathRef(Reference r)
r
- a reference to a source pathpublic void setModulesourcepath(Path msp)
msp
- the modulesourcepathpublic Path getModulesourcepath()
public Path createModulesourcepath()
public void setModulesourcepathRef(Reference r)
r
- a reference to a modulesourcepathpublic void setClasspath(Path classpath)
classpath
- an Ant Path object containing the compilation classpath.public Path getClasspath()
public Path createClasspath()
public void setClasspathRef(Reference r)
r
- a reference to a classpathpublic void setModulepath(Path mp)
mp
- an Ant Path object containing the modulepath.public Path getModulepath()
public Path createModulepath()
public void setModulepathRef(Reference r)
r
- a reference to a modulepathpublic void setUpgrademodulepath(Path ump)
ump
- an Ant Path object containing the upgrademodulepath.public Path getUpgrademodulepath()
public Path createUpgrademodulepath()
public void setUpgrademodulepathRef(Reference r)
r
- a reference to an upgrademodulepathpublic void setBootclasspath(Path bootclasspath)
bootclasspath
- a path to use as a boot class path (may be more
than one)public Path getBootclasspath()
public Path createBootclasspath()
public void setBootClasspathRef(Reference r)
r
- a reference to a classpathpublic void setExtdirs(Path extdirs)
extdirs
- a pathpublic Path getExtdirs()
public Path createExtdirs()
public void setListfiles(boolean list)
list
- if true list the source filespublic boolean getListfiles()
public void setFailonerror(boolean fail)
fail
- if true halt the build on failurepublic void setProceed(boolean proceed)
proceed
- inverse of failoferrorpublic boolean getFailonerror()
public void setDeprecation(boolean deprecation)
deprecation
- if true turn on deprecation informationpublic boolean getDeprecation()
public void setMemoryInitialSize(java.lang.String memoryInitialSize)
memoryInitialSize
- string to pass to VMpublic java.lang.String getMemoryInitialSize()
public void setMemoryMaximumSize(java.lang.String memoryMaximumSize)
memoryMaximumSize
- string to pass to VMpublic java.lang.String getMemoryMaximumSize()
public void setEncoding(java.lang.String encoding)
encoding
- the source file encodingpublic java.lang.String getEncoding()
public void setDebug(boolean debug)
debug
- if true compile with debug informationpublic boolean getDebug()
public void setOptimize(boolean optimize)
optimize
- if true compile with optimization enabledpublic boolean getOptimize()
public void setDepend(boolean depend)
depend
- if true enable dependency-trackingpublic boolean getDepend()
public void setVerbose(boolean verbose)
verbose
- if true, asks the compiler for verbose outputpublic boolean getVerbose()
public void setTarget(java.lang.String target)
target
- the target VMpublic java.lang.String getTarget()
public void setRelease(java.lang.String release)
--release
switch that
combines source
, target
and setting the
bootclasspath.
Values depend on the compiler, for jdk 9 the valid values are
"6", "7", "8", "9".release
- the value of the release attributepublic java.lang.String getRelease()
--release
switch that
combines source
, target
and setting the
bootclasspath.public void setIncludeantruntime(boolean include)
include
- if true, includes Ant's own classpath in the classpathpublic boolean getIncludeantruntime()
public void setIncludejavaruntime(boolean include)
include
- if true, includes the Java runtime libraries in the classpathpublic boolean getIncludejavaruntime()
public void setFork(boolean f)
f
- "true|false|on|off|yes|no"public void setExecutable(java.lang.String forkExec)
Ignored unless fork is true or extJavac has been specified as the compiler.
forkExec
- the name of the executablepublic java.lang.String getExecutable()
public boolean isForkedJavac()
public java.lang.String getJavacExecutable()
This is either the name specified with the executable attribute or the full path of the javac compiler of the VM Ant is currently running in - guessed by Ant.
You should not invoke this method if you
want to get the value of the executable command - use getExecutable
for this.
public void setNowarn(boolean flag)
flag
- if true, enable the -nowarn optionpublic boolean getNowarn()
public Javac.ImplementationSpecificArgument createCompilerArg()
public java.lang.String[] getCurrentCompilerArgs()
public void setTempdir(java.io.File tmpDir)
tmpDir
- the temporary directorypublic java.io.File getTempdir()
public void setUpdatedProperty(java.lang.String updatedProperty)
updatedProperty
- the property name to use.public void setErrorProperty(java.lang.String errorProperty)
errorProperty
- the property name to use.public void setIncludeDestClasses(boolean includeDestClasses)
includeDestClasses
- the value to use.public boolean isIncludeDestClasses()
public boolean getTaskSuccess()
public Path createCompilerClasspath()
public void add(CompilerAdapter adapter)
adapter
- CompilerAdapterpublic void setCreateMissingPackageInfoClass(boolean b)
b
- booleanpublic void execute() throws BuildException
execute
in class Task
BuildException
- if an error occursprotected void resetFileLists()
protected void scanDir(java.io.File srcDir, java.io.File destDir, java.lang.String[] files)
srcDir
- The source directorydestDir
- The destination directoryfiles
- An array of filenamespublic java.io.File[] getFileList()
protected boolean isJdkCompiler(java.lang.String compilerImpl)
compilerImpl
- the name of the compiler implementationprotected java.lang.String getSystemJavac()
public void setCompiler(java.lang.String compiler)
compiler
- the name of the compilerpublic java.lang.String getCompiler()
Defaults to the build.compiler property but can be overridden via the compiler and fork attributes.
If fork has been set to true, the result will be extJavac and not classic or java1.2 - no matter what the compiler attribute looks like.
getCompilerVersion()
public java.lang.String getCompilerVersion()
Defaults to the build.compiler property but can be overridden via the compiler attribute.
This method does not take the fork attribute into account.
getCompiler()
protected void checkParameters() throws BuildException
BuildException
- if an error occursprotected void compile()