public void execute()
        throws MojoExecutionException
    {
        List<String> defFileNames = getDefFileNames();

        // Silent failure when there are no def-files to process...
        if (defFileNames.size() == 0) {
            return;
        }

        String configSpec = String.join(",", defFileNames);

        boolean generateSources;
        // optionally create the output directory
        File f = outputDirectory;
        if (!f.exists() ) {
            f.mkdirs();
            generateSources = true;
            getLog().debug("Output dir does not exist");
        } else {
            getLog().debug("Output dir exists");
            generateSources = isSomeGeneratedFileStale(outputDirectory, defFileNames);
        }

        if (generateSources) {
            getLog().debug("Will generate config class files");
            try {
                MakeConfigProperties config = new MakeConfigProperties(outputDirectory.toString(),
                                                                       configSpec,
                                                                       null,
                                                                       null,
                                                                       null,
                                                                       useFramework.toString(),
                                                                       packagePrefix);
                if (!MakeConfig.makeConfig(config)) {
                    throw new MojoExecutionException("Failed to generate config for: " + configSpec);
                }
            } catch (IOException | PropertyException e) {
                throw new MojoExecutionException("Failed to generate config for: " + configSpec, e);
            }
        } else {
            getLog().debug("No changes, will not generate config class files");
        }

        // We have created files, so add the output directory to the compile source root
        addSourceRoot(outputDirectory.toString());
    }
Returns List of all def-files in all defFilesDirectories, including path.
@return The list of def-files.
config-class-plugin/src/main/java/com/yahoo/vespa/ConfigGenMojo.java