我在这里有一个Sping Boot 项目:https://github.com/jcasbin/jcasbin-springboot-plugin。我遇到了the following error in Travis CI:
shell
3.43s$ ./mvnw install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
/home/travis/build/jcasbin/jcasbin-springboot-plugin
Picked up _JAVA_OPTIONS: -Xmx2048m -Xms512m
Error: Could not find or load main class org.apache.maven.wrapper.MavenWrapperMain
The command "eval ./mvnw install -DskipTests=true -Dmaven.javadoc.skip=true -B -V " failed. Retrying, 2 of 3.
字符串
似乎mvnw
命令失败了。这个文件是由我的IDE生成的:IntelliJ IDEA 2018.1。我不知道它是用来做什么的,为什么会失败?
我已经在Sping Boot 的github issues here中触发了一个issue,但是Spring project说是Maven wrapper的issue,把我指到了这里。我不太明白是什么意思。是Maven bug吗?那怎么修复错误?
8条答案
按热度按时间aiazj4mn1#
Phil的回答是正确的。下面是如何创建.mvn目录,其中包含所需的jar。
我在这里找到了答案(https://www.baeldung.com/maven-wrapper)
如果你有maven,你想让maven wrapper工作,你需要设置maven wrapper:
字符串
它应该创建.mvn目录并将所需的jar文件放入其中。
hgtggwj02#
你的git仓库中缺少
.mvn
文件夹。你应该有一个名为.mvn
的文件夹,其中包含wrapper/maven-wrapper.jar
,wrapper/maven-wrapper.properties
和jvm.config
文件。也许你错过了它,因为它是一个隐藏文件夹。尝试从命令行执行
git add -f .mvn
,然后提交并推送。zf2sa74q3#
我不知道它是用来:
mvnw是一个maven的 Package 器,基本上它是一个脚本,它将maven从你的本地安装中分离出来,并可能会在实际的mvn命令中添加检查和功能-完整的解释请查看official maven documentation。
要设置它(假设您只使用
mvn
运行它),运行以下命令就足够了:字符串
这至少会创建以下新文件:
型
然后,通过调用
mvnw
,您可以通过maven-wrapper.jar运行所有内容--完全独立于本地maven安装。如果在执行命令后
maven-wrapper.jar
没有就位,则可能是网络问题-最常见的问题是需要配置代理。如何修复:
有什么问题吗?
代理问题:
最初,
mvn wrapper:wrapper
无法为我获取maven-wrapper.jar
。型
如果您深入到兔子洞中并检查实际的wrapper code,您会注意到没有默认代理-但是您可以通过创建一个
.mvn/jvm.config
文件来为java虚拟机设置一个代理,该文件包含:型
完成后,只需重新运行setup命令即可
型
自己获取一切:
型
到现在为止,运行
./mvnw clean install
,应该工作正常-它对我来说确实如此(但只有几天)类问题:
一个美好的一天,我来到办公室,
mvnw
正在返回与你所说的相同的错误!对我来说,这个问题实际上是<->
jvm.config
文件中的行尾(lfcrlf)问题。当
mvnw
脚本将选项扩展到actual command时,命令会被一个CR在类路径选项之前拆分,因为该类路径是maven-wrapper.jar(包含MaveWrapperMain)传递的位置,所以java命令实际上无法获取类。我是如何修复的:
我只是重新创建了只包含LF而不包含CRLF的文件。
奖金:
当我注意到这个CRLF是由一个在windows机器上的用户引入的,我检查了一些git文档以避免重复这个问题,运行了以下命令并建议每个人都这样做:
型
希望这集中了我发现分散的步骤,并最终节省了时间给某人。
gwo2fgha4#
1.再加上奥莱克西·沃伦斯基,
使用官方的maven Package 器
mvn Package 器: Package 器
而不是io.takari:maven:wrapper,不再维护
1.正如Phil Webb所提到的,将.mvn文件夹添加到git存储库中
wixjitnu5#
对于任何使用Windows看到此错误的人,请检查
.mvn
文件夹文件是否已转换为CRLF。如果是,将其更改为LF可能会解决您的问题。dfddblmv6#
在我的例子中,我将项目保存在一个文件夹中,该文件夹中的路由包含一个带重音的字符(在我的例子中是“á”)。删除重音解决了这个问题。
ddhy6vgd7#
在我的例子中,有一个
.dockerignore
文件,您在其中选择了所有应该考虑的jar文件,而.mvn
中的文件不在其中,因此出现了错误6ovsh4lw8#
我实际上只是做了mvn clean install,它工作了,我实际上使用的是spring 2.0的旧版本。