我在CI管道中考虑这个问题,我应该首先构建和测试我的应用程序,结果应该是一个docker映像。
我想知道使用构建环境在构建服务器上构建然后运行测试是否更常见。可能为此使用构建脚本。最后,只需将jar文件添加到使用COPY生成的Docker容器中,然后使用Entrypoint java-jar.jar。因此,将Dockerfile保持得很小,并在容器之外进行测试和构建。
FROM openjdk:8-jre-alpine
CMD java ${JAVA_OPTS} -jar *.jar
COPY build/libs/*.jar .
我想这并不一定是Java,同样的问题也适用于所有的语言
历史上,为了创建一个不包含源代码(以及用于创建二进制文件的软件)的Docker映像,用户必须运行两次Docker,例如,请参见
现在,Docker支持一种新的多阶段构建功能:
FROM maven:3.3-jdk-8-onbuild
FROM java:8
COPY --from=0 /usr/src/app/target/demo-1.0-SNAPSHOT.jar /opt/demo.jar
CMD ["java","-jar","/opt/demo.jar"]
例如,如果您正在使用Kubernetes或Openshift,一个选择是在Maven中运行测试阶段之前使用Fabric8插件部署代码。
HTSJDK是一个用于访问常见文件格式(如SAM和VCF)的库。我想构建HTSJDK JAR。在文档页面中说我必须为此使用Ant。所以我安装了Ant并运行以下命令: ant htsjdk-jar [javac]用法:javac [javac]use-help获取可能选项列表 生成失败 build.xml文件有问题。这里是文件的开头: 拜托,有人能告诉我该怎么做才能解决这个问题吗?
当使用TestNg并行运行测试时,报告、emailable和testng-results.xml似乎被重写,只显示最后一个线程的结果,而不是所有线程的组合结果。 示例testng-results.xml输出文件 可以看出,它能够识别烟雾套件中的所有3种方法,但只显示了1种方法的结果。
我试图从Ant build.xml文件运行jbehave故事。我有testng框架。我能够以以下方式执行测试 -JBehave测试来自testng.xml和-ammond类,这些类带有@test标记,来自build.xml。 问题是当我集成以上两个步骤时,即在testng.xml文件中添加Jbehave配置类(它获取故事),并尝试从build.xml触发。
Jest在Docs中表示:“Jest虚拟化JavaScript环境,并在工作进程之间并行运行测试。” 但是对于一个文件中的多个测试呢,它们是并行运行的,还是这个语句只适用于测试文件呢?我可以假设一个文件中的测试按外观顺序和串行运行吗?
我有如下内容:3个lib(libA,libB,libC),libB和libC依赖于libA。 一旦libA使用make完成构建,是否还有并行构建libB和libC的方法?