Java 如何在Travis CI机器上设置Z3解算器

Java 如何在Travis CI机器上设置Z3解算器,java,travis-ci,z3,continuous-testing,Java,Travis Ci,Z3,Continuous Testing,我有一个使用库Z3解算器的项目,希望应用Travis CI进行连续测试。但是,我无法在Travis CI的远程计算机上设置z3 以下是有关我的项目的更多信息: 从IDEEclipseMars创建 使用jdk8 使用Ant构建build.xml 内容文件.travis.yml language: java sudo: enabled jdk: - oraclejdk8 before_install: - sudo apt-get update - sudo apt-get i

我有一个使用库Z3解算器的项目,希望应用Travis CI进行连续测试。但是,我无法在Travis CI的远程计算机上设置z3

以下是有关我的项目的更多信息:

  • 从IDEEclipseMars创建
  • 使用jdk8
  • 使用Ant构建build.xml
内容文件.travis.yml

 language: java
 sudo: enabled
 jdk:
   - oraclejdk8
 before_install:
 - sudo apt-get update
 - sudo apt-get install z3 -y
 script:
 - ant build
 - ant 'MyJUnitTest'
远程机器控制台上的输出

... (be removed for clarity)
$ sudo apt-get install z3 -y
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package z3
The command "sudo apt-get install z3 -y" failed and exited with 100 during .
Your build has been stopped.
我知道,通过将包含Z3 solver的存储库添加到.travis.yml(安装前一节),可以解决这个问题。我找到了一个存储库:。但是,此存储库不再工作。更清楚的是,10分钟后(Travis CI机器上的默认等待时间),此存储库没有响应

$ sudo add-apt-repository ppa:hvr/z3

More info: https://launchpad.net/~hvr/+archive/ubuntu/z3
Press [ENTER] to continue or ctrl-c to cancel adding it
No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself.
Check the details on how to adjust your build configuration on: https://docs.travis-ci.com/user/common-build-problems/#Build-times-out-because-no-output-was-received
The build has been terminated

据我所知,没有官方/支持的方法可以做到这一点。如果真的有一个维持的回购协议就好了。但是,通过一些黑客攻击,直接下载版本并将其安装到构建机器上,就可以做到这一点

使用夜间Z3构建 Z3的人每天晚上都在github上维护构建,因此确实可以提取最新的代码并将其与Travis CI(用于Linux和Mac)以及Appveyor(用于Windows)集成

有关如何在travis中执行此操作的示例,请参见:

有关Appveyor设置,请参见:

根据您的具体需求,您应该能够将其应用于您自己的问题。(注意,通过在Mac上安装一些其他依赖项,travis bit比z3做得更多;您应该省去这些依赖项。如果需要帮助,请Ping!)

关于稳定性的注记 不幸的是,这个技巧并不是100%万无一失的,它确实需要偶尔维护,因为它依赖于Z3的存储位置、夜间构建的命名方式、travis/appveyor如何处理环境等;但这对我来说已经相当可靠地工作了一段时间。祝你好运

使用稳定的Z3版本 如果你想要“稳定”的构建而不是“每晚”的z3,你可以使用类似的技巧,稍微修改一下位置;从本质上说,是从:而不是