protected void setPomLocation()

in src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java [263:294]


    protected void setPomLocation(InvocationRequest request, Commandline cli) {
        File pom = request.getPomFile();
        String pomFilename = request.getPomFileName();

        if (pom == null) {
            if (pomFilename != null) {
                pom = new File(baseDirectory, pomFilename);
            } else {
                pom = new File(baseDirectory, "pom.xml");
            }
        }

        try {
            pom = pom.getCanonicalFile();
        } catch (IOException e) {
            logger.debug("Failed to canonicalize the POM path: " + pom + ". Using as-is.", e);
        }

        if (pom.getParentFile().equals(baseDirectory)) {
            // pom in project workspace
            if (!"pom.xml".equals(pom.getName())) {
                logger.debug("Specified POM file is not named 'pom.xml'. "
                        + "Using the '-f' command-line option to accommodate non-standard filename...");

                cli.createArg().setValue("-f");
                cli.createArg().setValue(pom.getName());
            }
        } else {
            cli.createArg().setValue("-f");
            cli.createArg().setValue(pom.getPath());
        }
    }