如何在 Maven 中包含 JavaParser 依赖项?

How to include JavaParser Dependencies with Maven?

我阅读了官方 http://javaparser.org/ 页面,但我不知道如何安装它。 我看到这个答案 告诉我

easily create a project using Maven and including among the dependencies JavaParser

连同

<dependency>
    <groupId>com.github.javaparser</groupId>
    <artifactId>javaparser-core</artifactId>
    <version>2.2.1</version>
</dependency>

但我不知道如何使用 javaparser 和 maven 构建我的代码。 我在下载javaparser源码的目录下执行mvn clean install没有错误。 然后我尝试 运行 以下内容:

import com.github.javaparser.JavaParser.*;

public class PreprocessJavaparser {

    public static void listClasses() {
        CompilationUnit compilationUnit = JavaParser.parse("class A { }");
        ClassOrInterfaceDeclaration classA = compilationUnit.getClassByName("A");

    }

    public static void main(String[] args) {
        listClasses();
    }
}

但是当我导入 com.github.javaparser.JavaParser.*; 时,我得到这个错误:package com.github.javaparser.JavaParser does not exist
所以我认为我没有正确安装 JavaParser,或者我必须以某种方式处理 pom.xml.

中的 JavaParser 依赖项

这是我的 pom.xml 与 javaparser-core 依赖关系:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>test</groupId>
    <artifactId>preprocess</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.github.javaparser</groupId>
                <artifactId>javaparser-core</artifactId>
                <version>3.3.2</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

您的导入错误:

import com.github.javaparser.JavaParser.*;

您尝试从 JavaParser class 导入,就好像它是一个包一样。

应该是

import com.github.javaparser.JavaParser;

import com.github.javaparser.*;

对于您使用的所有 classes/packages。

@WilliamReed I don't use an IDE. – AIpeter

嗯,也许你应该,它会帮助你解决这类问题。

这里还有一个问题:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.github.javaparser</groupId>
            <artifactId>javaparser-core</artifactId>
            <version>3.3.2</version>
        </dependency>
    </dependencies>
</dependencyManagement>

您应该使用 dependencies,而不是 dependencyManagement/dependencies。后者只是声明依赖,并没有实际使用。

I executed mvn clean install in the directory I downloaded the javaparser source code with no errors.

不,你不应该那样做。 maven 的全部意义在于它采用库的编译版本(例如 JavaParser),下载它并让您在自己的项目中使用它。这意味着除非你想改变 JavaParser 本身(你不想)你不需要下载 JavaParser 的源代码。

只需创建您自己的项目并将 JavaParser 添加为该项目的依赖项。就是这样。