【发布时间】:2021-12-31 09:31:02
【问题描述】:
我不太确定为什么会发生这种情况,因为它没有发生在我的另一个项目中,其设置几乎相同。我正在使用 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
【问题讨论】:
-
如果包刚刚发布,就得等到内部maven仓库刷新了。
-
@ThiloSchwarz 你能解释一下你的意思吗?
-
maven 本身在实际编译之前会显示哪些错误信息?
-
@TheProgrammer 为了节省流量,github 操作正在使用由 github 管理的“本地”maven 存储库。这个 repo 的刷新率很低。这就是为什么可以在本地解决依赖关系但不能在 github 操作上解决的原因。
-
@TheProgrammer 我检查了你的项目并在命令行上调用
mvn clean compile时遇到了同样的错误。原因:编译插件对您生成的资源一无所知。我猜你的 IDE 有自己的源路径。
标签: java maven yaml github-actions antlr