GitHub 推送后 Actions Maven 测试失败?

GitHub Actions Maven test failing after push?

我不太确定为什么会发生这种情况,因为它没有发生在我的其他项目中,几乎相同的设置。我正在使用 Maven 开发一个 Java 项目,并希望在将代码推送到 GitHub 后 运行 我的测试套件。我可以做一个 mvn compile test -Dtest=InterpreterTester,它会在本地正常工作。但是,如果我将代码推送到 GitHub,构建测试将失败,并出现一堆 cannot find symbol 错误和 package x does not exist. 同样,这不会在本地发生,我使用了类似的在以前的项目中设置(实际上,.yml 文件是逐字复制的,.pom 文件只是在 ANTLR 的版本上有所不同)。谁能看出可能出了什么问题?

maven.yml 文件:

name: tests
on: push
jobs:
  run_tests:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout the repository
        uses: actions/checkout@v2
      - name: Set up JDK 14
        uses: actions/setup-java@v1
        with:
          java-version: 14
      - name: Cache Maven packages
        uses: actions/cache@v2
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: ${{ runner.os }}-m2
      - name: Run tests with Maven
        run: mvn compile test -Dtest=InterpreterTester

我自己修复了它 - 事实证明,对于 ANTLR 和 Maven,.g4 文件必须位于与项目其余部分具有相同“名称”的包中。例如,我的 .g4 文件在 src/main/antlr4/mygrammar.g4 中,而它本应在 src/main/antlr4/com/myproject/mygrammar.g4 中,因为项目结构的其余部分是 src/main/java/com/myproject/....

反过来,这允许 Maven 识别语法位置并使用 mvn clean compile 生成正确的文件。