解析maven pom.xml,使用maven jar

时间:2010-12-10 13:08:00

标签: pom.xml maven-3

我一直在尝试解析maven pom.xml。我在某种程度上取得了成功。但我的问题是我无法获得默认值。我必须手动注入默认值。 例如,如果未在pom.xml中指定版本号,则很明显将使用父版本。 如果未指定构建目录,那么它将是目标。

我需要知道,我应该使用哪些类来自动填充这些内容。除此之外,我想为我建立依赖图。我用来解析的代码是

        Model model = null;
    FileReader reader = null;
    MavenXpp3Reader mavenreader = new MavenXpp3Reader();
    try {
        reader = new FileReader(pomfile);
        model = mavenreader.read(reader);
        model.setPomFile(pomfile);

        if (model.getBuild() != null) {
            // location of output directory basically target
            if (model.getBuild().getDirectory() == null) {
            //set the build directory

            } // location of compiled classes
            if (model.getBuild().getOutputDirectory() == null) {
                      // set the classes directory
            }
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        throw new RuntimeException("pom file not found " + pomfile);
    } catch (IOException e) {
        e.printStackTrace();
        throw new RuntimeException("pom file is not accessible " + pomfile);
    } catch (XmlPullParserException e) {
        e.printStackTrace();
        throw new RuntimeException("unable to parse pom " + pomfile);
    } catch (NullPointerException nullPointerException)
        System.out.println("Exception setting build dir "+model.getPackaging());

    } finally {
        if (reader != null) {
            reader.close();
        }
    }

感谢。

1 个答案:

答案 0 :(得分:-1)

查看 help:effective-pom 插件目标的代码,或实际使用它来转储有效的POM和xml解析结果。