Merge "idegen: traversing all vendor-specific excludes"
This commit is contained in:
@@ -61,9 +61,9 @@ Excluding source roots and jars
|
||||
use Java's regular expression parser (see java.util.regex.Parser).
|
||||
|
||||
You can create your own additional exclusion list by creating an
|
||||
"excluded-paths" file in the project's root directory. For example, you
|
||||
might exclude all apps except the Browser in your IDE configuration with
|
||||
this regular expression: "^packages/apps/(?!Browser)".
|
||||
"excluded-paths" file in the project's root directory or your vendor
|
||||
directory. For example, you might exclude all apps except the Browser in your
|
||||
IDE configuration with this regular expression: "^packages/apps/(?!Browser)".
|
||||
|
||||
Controlling source root ordering (Eclipse)
|
||||
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
# document the reason for each exclusion.
|
||||
#
|
||||
# Developers can also create an 'excluded-paths' file in the project's root
|
||||
# directory and add their own excludes to slim down their build.
|
||||
# directory or their vendor directory and add their own excludes to slim
|
||||
# down their build.
|
||||
#
|
||||
# Currently, we lump all the .java files together into one big module, so you
|
||||
# can't have two classes with the same name at once. In the future, we'll
|
||||
|
||||
@@ -48,6 +48,9 @@ public class Configuration {
|
||||
/** File name used for excluded path files. */
|
||||
private static final String EXCLUDED_PATHS = "excluded-paths";
|
||||
|
||||
/** The vendor directory. */
|
||||
private static final String VENDOR_PATH = "./vendor/";
|
||||
|
||||
/**
|
||||
* Constructs a Configuration by traversing the directory tree, looking
|
||||
* for .java and .jar files and identifying source roots.
|
||||
@@ -91,12 +94,8 @@ public class Configuration {
|
||||
File globalExcludes = new File(toolDirectory, EXCLUDED_PATHS);
|
||||
parseFile(globalExcludes, patterns);
|
||||
|
||||
// Look for Google-specific excludes.
|
||||
// TODO: Traverse all vendor-specific directories.
|
||||
File googleExcludes = new File("./vendor/google/" + EXCLUDED_PATHS);
|
||||
if (googleExcludes.exists()) {
|
||||
parseFile(googleExcludes, patterns);
|
||||
}
|
||||
// Traverse all vendor-specific directories
|
||||
readVendorExcludes(patterns);
|
||||
|
||||
// Look for user-specific excluded-paths file in current directory.
|
||||
File localExcludes = new File(EXCLUDED_PATHS);
|
||||
@@ -107,6 +106,23 @@ public class Configuration {
|
||||
return new Excludes(patterns);
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads vendor excluded path files.
|
||||
* @see #readExcludes()
|
||||
*/
|
||||
private static void readVendorExcludes(List<Pattern> out) throws IOException {
|
||||
File vendorDir = new File(VENDOR_PATH);
|
||||
File[] vendorList;
|
||||
if (!vendorDir.exists() || (vendorList = vendorDir.listFiles()) == null) return;
|
||||
for (File vendor : vendorList) {
|
||||
File vendorExcludes = new File(vendor, EXCLUDED_PATHS);
|
||||
if (vendorExcludes.exists()) {
|
||||
Log.info("Read vendor excludes: " + vendorExcludes.getPath());
|
||||
parseFile(vendorExcludes, out);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Recursively finds .java source roots, .jar files, and excluded
|
||||
* directories.
|
||||
|
||||
Reference in New Issue
Block a user