在Docker容器中执行'./gradlew build installDist --info'时,Gradle构建失败 [英] Gradle build fails while executing './gradlew build installDist --info' inside docker container
问题描述
我已经安装了 git
和 java-1.8.0-openjdk-devel
。
克隆 https://github.com/apache/incubator-geode.git
已更改目录到 incubator-geode
然后执行 ./ gradlew build installDist --info
这给出了一个错误:
FAILURE:构建失败,出现异常。
出错:
任务':gemfire-core:test'的执行失败。
>有失败的测试。请参阅以下文件:file:/// incubator- geode / gemfire-core / build / reports / test / index.html
*尝试:
使用--stacktrace选项运行以获取堆栈跟踪。使用--debug选项运行以获取更多日志输出。
BUILD FAILED
文件index.html包含以下内容:
com.gemstone.gemfire.internal.compression.SnappyCompressorJUnitTest> testCompressByteArray FAILED
java.lang.IllegalStateException:无法加载本机Snappy库。
。在com.gemstone.gemfire.compression.SnappyCompressor<初始化>(SnappyCompressor.java:51)
。在com.gemstone.gemfire.compression.SnappyCompressor.getDefaultInstance(SnappyCompressor.java:67)$
org.xerial.snappy.SnappyError:在com.gemstone.gemfire.internal.compression.SnappyCompressorJUnitTest.testCompressByteArray(SnappyCompressorJUnitTest.java:34)b
$ b。通过致[FAILED_TO_LOAD_NATIVE_LIBRARY]没有为os.name = Linux和os.arch = s390x
找到原生库,位于org.xerial.snappy.SnappyLoader.findNativeLibrary(SnappyLoader.java:299)
在org.xerial.snappy.SnappyLoader .loadNativeLibrary(SnappyLoader.java:163)
at org.xerial.snappy.SnappyLoader.load(SnappyLoader.java:145)
at org.xerial.snappy.Snappy。< clinit>(Snappy。 < init>(SnappyCompressor.java:48)
... 2 more
com.gemstone .gemfire.int ernal.compression.SnappyCompressorJUnitTest> testConstructor FAILED
java.lang.NoClassDefFoundError:在com.gemstone.gemfire.compression.SnappyCompressor无法初始化类org.xerial.snappy.Snappy
将INIT>(SnappyCompressor.java:48)$在com.gemstone.gemfire.compression.SnappyCompressor.getDefaultInstance(SnappyCompressor.java:67)b
$ b。在com.gemstone.gemfire.internal.compression.SnappyCompressorJUnitTest.testConstructor(SnappyCompressorJUnitTest.java:45)
com.gemstone.gemfire.cache.AttributesFactoryJUnitTest> testInvalidConfigurations FAILED
java.lang.NoClassDefFoundError:在com.gemstone.gemfire.compression.SnappyCompressor无法初始化类org.xerial.snappy.Snappy
将INIT>(SnappyCompressor.java:48)$在com.gemstone.gemfire.compression.SnappyCompressor.getDefaultInstance(SnappyCompressor.java:67)b
$ b。在com.gemstone.gemfire.cache.AttributesFactoryJUnitTest.testInvalidConfigurations(AttributesFactoryJUnitTest.java:214)
有什么想法?
我会尝试做的第一件事是在Docker容器中本地运行命令。通过使用docker run运行容器并将--endpoint / bin / bash添加到运行行来执行此操作。 此处有一些示例。这将使您能够在本地执行gradlew命令并查看输出结果。
我假设它与未设置JAVA_HOME或者Java不在路径中有关。
I have created docker container on SLES 12.
I have installed git
and java-1.8.0-openjdk-devel
.
Clone the master branch of https://github.com/apache/incubator-geode.git
Changed directory to incubator-geode
And then executed ./gradlew build installDist --info
This gives an error saying: FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':gemfire-core:test'.
> There were failing tests. See the report at: file:///incubator- geode/gemfire-core/build/reports/test/index.html
* Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.
BUILD FAILED
The file index.html has following:
com.gemstone.gemfire.internal.compression.SnappyCompressorJUnitTest > testCompressByteArray FAILED
java.lang.IllegalStateException: Unable to load native Snappy library.
at com.gemstone.gemfire.compression.SnappyCompressor.<init>(SnappyCompressor.java:51)
at com.gemstone.gemfire.compression.SnappyCompressor.getDefaultInstance(SnappyCompressor.java:67)
at com.gemstone.gemfire.internal.compression.SnappyCompressorJUnitTest.testCompressByteArray(SnappyCompressorJUnitTest.java:34)
Caused by:
org.xerial.snappy.SnappyError: [FAILED_TO_LOAD_NATIVE_LIBRARY] no native library is found for os.name=Linux and os.arch=s390x
at org.xerial.snappy.SnappyLoader.findNativeLibrary(SnappyLoader.java:299)
at org.xerial.snappy.SnappyLoader.loadNativeLibrary(SnappyLoader.java:163)
at org.xerial.snappy.SnappyLoader.load(SnappyLoader.java:145)
at org.xerial.snappy.Snappy.<clinit>(Snappy.java:47)
at com.gemstone.gemfire.compression.SnappyCompressor.<init>(SnappyCompressor.java:48)
... 2 more
com.gemstone.gemfire.internal.compression.SnappyCompressorJUnitTest > testConstructor FAILED
java.lang.NoClassDefFoundError: Could not initialize class org.xerial.snappy.Snappy
at com.gemstone.gemfire.compression.SnappyCompressor.<init>(SnappyCompressor.java:48)
at com.gemstone.gemfire.compression.SnappyCompressor.getDefaultInstance(SnappyCompressor.java:67)
at com.gemstone.gemfire.internal.compression.SnappyCompressorJUnitTest.testConstructor(SnappyCompressorJUnitTest.java:45)
com.gemstone.gemfire.cache.AttributesFactoryJUnitTest > testInvalidConfigurations FAILED
java.lang.NoClassDefFoundError: Could not initialize class org.xerial.snappy.Snappy
at com.gemstone.gemfire.compression.SnappyCompressor.<init>(SnappyCompressor.java:48)
at com.gemstone.gemfire.compression.SnappyCompressor.getDefaultInstance(SnappyCompressor.java:67)
at com.gemstone.gemfire.cache.AttributesFactoryJUnitTest.testInvalidConfigurations(AttributesFactoryJUnitTest.java:214)
Any idea?
The first thing that I would try to do is to run the command locally in the docker container. You do this by running the container using docker run and adding the "--endpoint /bin/bash" to the run line. There are some examples here. This will enable you to do the gradlew command locally and see what the output is.
I'm presuming that it has something to do with the JAVA_HOME not being set or that Java is not in the path.
这篇关于在Docker容器中执行'./gradlew build installDist --info'时,Gradle构建失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!