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
生成正确的文件。
我不太确定为什么会发生这种情况,因为它没有发生在我的其他项目中,几乎相同的设置。我正在使用 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
生成正确的文件。