|
|
@@ -451,11 +451,14 @@ public class Javadoc extends Task { |
|
|
|
private final List<SourceFile> sourceFiles = new Vector<>(); |
|
|
|
private final List<PackageName> packageNames = new Vector<>(); |
|
|
|
private final List<PackageName> excludePackageNames = new Vector<>(1); |
|
|
|
private final List<PackageName> moduleNames = new ArrayList<>(); |
|
|
|
private boolean author = true; |
|
|
|
private boolean version = true; |
|
|
|
private DocletInfo doclet = null; |
|
|
|
private Path classpath = null; |
|
|
|
private Path bootclasspath = null; |
|
|
|
private Path modulePath = null; |
|
|
|
private Path moduleSourcePath = null; |
|
|
|
private String group = null; |
|
|
|
private String packageList = null; |
|
|
|
private final List<LinkArgument> links = new Vector<>(); |
|
|
@@ -566,6 +569,88 @@ public class Javadoc extends Task { |
|
|
|
createSourcepath().setRefid(r); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Specify where to find modules |
|
|
|
* |
|
|
|
* @param src a Path instance containing the modules. |
|
|
|
* |
|
|
|
* @since Ant 1.10.6 |
|
|
|
*/ |
|
|
|
public void setModulePath(final Path mp) { |
|
|
|
if (modulePath == null) { |
|
|
|
modulePath = mp; |
|
|
|
} else { |
|
|
|
modulePath.append(mp); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Create a path to be configured with the locations of the module |
|
|
|
* files. |
|
|
|
* |
|
|
|
* @return a new Path instance to be configured by the Ant core. |
|
|
|
* |
|
|
|
* @since Ant 1.10.6 |
|
|
|
*/ |
|
|
|
public Path createModulePath() { |
|
|
|
if (modulePath == null) { |
|
|
|
modulePath = new Path(getProject()); |
|
|
|
} |
|
|
|
return modulePath.createPath(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Adds a reference to a path defined elsewhere that defines the module path. |
|
|
|
* |
|
|
|
* @param r the reference containing the module path definition. |
|
|
|
* |
|
|
|
* @since Ant 1.10.6 |
|
|
|
*/ |
|
|
|
public void setModulePathref(final Reference r) { |
|
|
|
createModulePath().setRefid(r); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Specify where to find sources for modules |
|
|
|
* |
|
|
|
* @param src a Path instance containing the sources for modules. |
|
|
|
* |
|
|
|
* @since Ant 1.10.6 |
|
|
|
*/ |
|
|
|
public void setModuleSourcePath(final Path mp) { |
|
|
|
if (moduleSourcePath == null) { |
|
|
|
moduleSourcePath = mp; |
|
|
|
} else { |
|
|
|
moduleSourcePath.append(mp); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Create a path to be configured with the locations of the module |
|
|
|
* source files. |
|
|
|
* |
|
|
|
* @return a new Path instance to be configured by the Ant core. |
|
|
|
* |
|
|
|
* @since Ant 1.10.6 |
|
|
|
*/ |
|
|
|
public Path createModuleSourcePath() { |
|
|
|
if (moduleSourcePath == null) { |
|
|
|
moduleSourcePath = new Path(getProject()); |
|
|
|
} |
|
|
|
return moduleSourcePath.createPath(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Adds a reference to a path defined elsewhere that defines the module source path. |
|
|
|
* |
|
|
|
* @param r the reference containing the module source path definition. |
|
|
|
* |
|
|
|
* @since Ant 1.10.6 |
|
|
|
*/ |
|
|
|
public void setModuleSourcePathref(final Reference r) { |
|
|
|
createModuleSourcePath().setRefid(r); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Set the directory where the Javadoc output will be generated. |
|
|
|
* |
|
|
@@ -619,6 +704,21 @@ public class Javadoc extends Task { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Set the module names to be processed. |
|
|
|
* |
|
|
|
* @param modules a comma separated list of module names |
|
|
|
* |
|
|
|
* @since Ant 1.10.6 |
|
|
|
*/ |
|
|
|
public void setModulenames(final String modules) { |
|
|
|
for (String m : modules.split(",")) { |
|
|
|
final PackageName mn = new PackageName(); |
|
|
|
mn.setName(m); |
|
|
|
addModule(mn); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Add a single package to be processed. |
|
|
|
* |
|
|
@@ -631,6 +731,17 @@ public class Javadoc extends Task { |
|
|
|
packageNames.add(pn); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Add a single module to be processed. |
|
|
|
* |
|
|
|
* @param mn the module name |
|
|
|
* |
|
|
|
* @since Ant 1.10.6 |
|
|
|
*/ |
|
|
|
public void addModule(final PackageName mn) { |
|
|
|
moduleNames.add(mn); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Set the list of packages to be excluded. |
|
|
|
* |
|
|
@@ -1737,6 +1848,7 @@ public class Javadoc extends Task { |
|
|
|
doGroup(toExecute); // group attribute |
|
|
|
doGroups(toExecute); // groups attribute |
|
|
|
doDocFilesSubDirs(toExecute); // docfilessubdir attribute |
|
|
|
doModuleArguments(toExecute); |
|
|
|
|
|
|
|
doJava14(toExecute); |
|
|
|
if (breakiterator && (doclet == null || JAVADOC_5)) { |
|
|
@@ -1852,9 +1964,9 @@ public class Javadoc extends Task { |
|
|
|
private void checkPackagesToDoc( |
|
|
|
final List<String> packagesToDoc, final List<SourceFile> sourceFilesToDoc) { |
|
|
|
if (packageList == null && packagesToDoc.isEmpty() |
|
|
|
&& sourceFilesToDoc.isEmpty()) { |
|
|
|
throw new BuildException( |
|
|
|
"No source files and no packages have been specified."); |
|
|
|
&& sourceFilesToDoc.isEmpty() && moduleNames.isEmpty()) { |
|
|
|
throw new BuildException("No source files, no packages and no modules have " |
|
|
|
+ "been specified."); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@@ -2479,6 +2591,23 @@ public class Javadoc extends Task { |
|
|
|
return fileContents; |
|
|
|
} |
|
|
|
|
|
|
|
private void doModuleArguments(Commandline toExecute) { |
|
|
|
if (!moduleNames.isEmpty()) { |
|
|
|
toExecute.createArgument().setValue("--module"); |
|
|
|
toExecute.createArgument() |
|
|
|
.setValue(moduleNames.stream().map(PackageName::getName) |
|
|
|
.collect(Collectors.joining(","))); |
|
|
|
} |
|
|
|
if (modulePath != null) { |
|
|
|
toExecute.createArgument().setValue("--module-path"); |
|
|
|
toExecute.createArgument().setPath(modulePath); |
|
|
|
} |
|
|
|
if (moduleSourcePath != null) { |
|
|
|
toExecute.createArgument().setValue("--module-source-path"); |
|
|
|
toExecute.createArgument().setPath(moduleSourcePath); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private class JavadocOutputStream extends LogOutputStream { |
|
|
|
JavadocOutputStream(final int level) { |
|
|
|
super(Javadoc.this, level); |
|
|
|