static boolean ignoreJar(String pathName) {

		//
		// Note: keep this algorithm simple enough that users can add their own plugins via
		//       jar files.		
		//

		//
		// Dev Mode - don't scan 3rd-party jar files
		//
		if (containsAnyIgnoreCase(pathName, "ExternalLibraries", "caches", "flatrepo")) {
			return true;
		}

		//
		// Dev Mode - let everything else through
		// 
		if (SystemUtilities.isInDevelopmentMode()) {
			return false;
		}

		//
		// Production Mode - old style (before Extensions) of user contributions
		//
		String forwardSlashedPathName = pathName.replaceAll("\\\\", "/");
		if (isUserPluginJar(forwardSlashedPathName)) {
			return false;
		}

		// 
		// Production Mode - allow users to enter code in the 'patch' directory
		//		
		if (isPatchJar(forwardSlashedPathName)) {
			return false;
		}

		//
		// Production Mode - In production, only module lib jar files are scanned
		//
		if (isModuleDependencyJar(forwardSlashedPathName)) {
			return false;
		}

		// this is typically a 3rd-party jar file
		return true;
	}
Pattern for matching jar files in a module lib dir
<p>
The pattern roughly states to accept any path that contains {@code lib} or 
{@code build/libs}, ending in {@code .jar} (non-capturing) and then 
grab that dir's parent and the name of the jar file.
Ghidra/Framework/Generic/src/main/java/ghidra/util/classfinder/ClassJar.java