mvn archetype:create SHA-256 MessageDigest 不可用
mvn archetype:create SHA-256 MessageDigest not available
这是我第一次尝试maven
。我的 os 在 linuxmint
。我已经成功安装了 maven。
mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /home/gzx/danale/environment/apache-maven-3.3.9
Java version: 1.8.0_111, vendor: Oracle Corporation
Java home: /usr/java/jdk1.8.0_111/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "4.4.0-53-generic", arch: "amd64", family: "unix"
但是当我用过mvn archetype:create
mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03 -DartifactId=simple -DpackageName=org.sonatype.mavenbook
它显示了一个奇怪的错误。
[WARNING] Error injecting: org.sonatype.plexus.components.cipher.DefaultPlexusCipher
com.google.inject.ProvisionException: Unable to provision, see the following errors:Error injecting constructor, org.sonatype.plexus.components.cipher.PlexusCipherException: java.security.NoSuchAlgorithmException: SHA-256 MessageDigest not available
at org.sonatype.plexus.components.cipher.DefaultPlexusCipher.(Unknown Source)
while locating org.sonatype.plexus.components.cipher.DefaultPlexusCipher
好奇怪,我该怎么办?
我想你可能已经想通了你的问题。但是我昨天遇到了这个错误,今天我修复了它。我应该写下我的解决方案。也许有人会落入这个陷阱。
其实这个问题是因为Java找不到class"SHA-256 MessageDigest"。但它是JRE默认提供的。应该会自动找到。
如果你访问你的JAVA_HOME,你可能会在JAVA_HOME/jre/lib中找到一个名为jsse.pack的文件,而没有一个名为jsse.jar的文件。那就是问题所在。输入
unpack200 jsse.pack jsse.jar
(unpack200 将在您设置 Java 路径后立即被识别)
问题应该解决了。
注意:
有些JDK的jsse.rar不是jsse.pack,因此,运行"unpack200 jsse.rar jsse.jar"命令会得到想要的结果,不会删除"jsse.rar"文件(如果是 *.pack 文件,它们会被 *.jar 文件替换)。
这是我第一次尝试maven
。我的 os 在 linuxmint
。我已经成功安装了 maven。
mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00) Maven home: /home/gzx/danale/environment/apache-maven-3.3.9 Java version: 1.8.0_111, vendor: Oracle Corporation Java home: /usr/java/jdk1.8.0_111/jre Default locale: zh_CN, platform encoding: UTF-8 OS name: "linux", version: "4.4.0-53-generic", arch: "amd64", family: "unix"
但是当我用过mvn archetype:create
mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03 -DartifactId=simple -DpackageName=org.sonatype.mavenbook
它显示了一个奇怪的错误。
[WARNING] Error injecting: org.sonatype.plexus.components.cipher.DefaultPlexusCipher com.google.inject.ProvisionException: Unable to provision, see the following errors:Error injecting constructor, org.sonatype.plexus.components.cipher.PlexusCipherException: java.security.NoSuchAlgorithmException: SHA-256 MessageDigest not available at org.sonatype.plexus.components.cipher.DefaultPlexusCipher.(Unknown Source) while locating org.sonatype.plexus.components.cipher.DefaultPlexusCipher
好奇怪,我该怎么办?
我想你可能已经想通了你的问题。但是我昨天遇到了这个错误,今天我修复了它。我应该写下我的解决方案。也许有人会落入这个陷阱。
其实这个问题是因为Java找不到class"SHA-256 MessageDigest"。但它是JRE默认提供的。应该会自动找到。
如果你访问你的JAVA_HOME,你可能会在JAVA_HOME/jre/lib中找到一个名为jsse.pack的文件,而没有一个名为jsse.jar的文件。那就是问题所在。输入
unpack200 jsse.pack jsse.jar
(unpack200 将在您设置 Java 路径后立即被识别)
问题应该解决了。
注意: 有些JDK的jsse.rar不是jsse.pack,因此,运行"unpack200 jsse.rar jsse.jar"命令会得到想要的结果,不会删除"jsse.rar"文件(如果是 *.pack 文件,它们会被 *.jar 文件替换)。