错误:无法访问jarfile build / libs / gs-spring-boot-0.1.0.jar?

时间:2018-09-24 18:00:11

标签: gradle

我遵循https://spring.io/guides/gs/spring-boot/#scratch中的说明,但是当提示运行时:

./ gradlew build && java -jar build / libs / gs-spring-boot-0.1.0.jar

构建因上述错误而失败。

失败之前会显示一条消息:

在此版本中使用了不推荐使用的Gradle功能,使其与Gradle 5.0不兼容。 参见https://docs.gradle.org/4.8.1/userguide/command_line_interface.html#sec:command_line_warnings

但是在线上的所有人都说这只是一个警告。

该版本似乎无法创建或下载build / libs / gs-spring-boot-0.1.0.jar。

当前在首次尝试使用Gradle时完全被阻止。

9 个答案:

答案 0 :(得分:2)

我只是有这个问题。

该教程在您需要运行的内容方面是错误的。应该是

$ gradlew build && java -jar build/libs/gs-rest-service-0.1.0.jar

我认为他们更新了代码,但忘了更新教程。

答案 1 :(得分:0)

请检查jar文件build/libs/gs-spring-boot-0.1.0.jar的路径。对于您的情况,罐子可能在其他文件夹中。如果您的代码在主项目的模块中,则jar将在模块的build文件夹中。

答案 2 :(得分:0)

如果您用git克隆了仓库,那么本教程就可以了。如果您“要从头开始,请继续使用Gradle进行构建。”,那么该教程将无法正常工作。缺少设置步骤。

答案 3 :(得分:0)

在Intellij IDEA上使用Maven构建简单项目时,我遇到了同样的问题。 (Ubuntu 18.04.2)。

只需键入终端(在项目目录中):

$ sudo mvn package
$ java -jar ./target/(your-project-name)-(<version> at pom.xml).jar

例如,我的项目名称为hello-world-spring,而pom.xml中的版本名称为<version>0.0.1-SNAPSHOT</version>,我必须输入:

$ sudo mvn package
$ java -jar ./target/hello-world-spring-0.0.1-SNAPSHOT.jar

也许这种方法也可以用于gradle。

答案 4 :(得分:0)

我遇到了同样的问题,并将命令更改为java -jar target/rest-service-0.0.1-SNAPSHOT.jar(我检查了目标文件夹中的.jar文件,发现文件名不正确)。

答案 5 :(得分:0)

我的项目的父文件夹的名称中包含空格,我将其更改为下划线,并且可以正常工作。

答案 6 :(得分:0)

查看命令行,就像官方指南中一样:

./gradlew clean build && java -jar build/libs/gs-actuator-service-0.1.0.jar

首先,以上命令行包含两个部分: (1)./gradlew clean build //使用gradle包装器进行构建 (2)java -jar build / libs / gs-actuator-service-0.1.0.jar //运行打包为JAR文件的应用程序

现在,一个或两个部分可能会出现问题。分离它们并一次只运行在某个事物上有助于解决问题。

(1)在我的Windows上不起作用,我改为执行以下操作,并且成功构建了该应用程序。

.\gradlew.bat clean build

现在移至(2)java -jar build / libs / gs-actuator-service-0.1.0.jar 从字面上看,这意味着“在此目录/路径下运行一个名为gs-actuator-service-0.1.0.jar的jar文件:build / libs /”对于Windows,这又转换为build \ libs \,并且存在一个可能会吸引您的更多信息:jar文件的名称可能会略有不同,具体取决于initial / setting.gradle中配置的实际命名方式:

rootProject.name = 'actuator-service' 

请注意,官方指南在其示例代码中将其从“ gs-actuator-service”更改为“ actuator-service”,但尚未相应地更新本教程。但是现在您知道了jar文件名的来源,这不再重要,您可以选择根据需要重命名。

在调整了所有因素之后,以下是我的案例最终能解决的问题:

java -jar build\libs\actuator-service-0.0.1-SNAPSHOT.jar

或 java -jar C:\ MyWorkspace \ Spring \ gs-actuator-service \ initial \ build \ libs \ actuator-service-0.0.1-SNAPSHOT.jar //具有完全限定的路径

如果您好奇“ -0.0.1-SNAPSHOT”来自何处,则为: 在build.gradle

version = '0.0.1-SNAPSHOT'

同样,您可以选择根据需要进行修改。例如,如果我将其更改为0.0.2-SNAPSHOT,则应该相应地调整命令行

java -jar build\libs\actuator-service-0.0.2-SNAPSHOT.jar

参考:https://docs.oracle.com/javase/tutorial/deployment/jar/basicsindex.html

答案 7 :(得分:0)

因为您正在尝试执行不存在的.jar文件。构建项目后,转到./build/libs并检查新构建的.jar文件的名称,然后在项目目录中运行:

./gradlew build && java -jar build/libs/name-of-your-jar-file.jar

或者您可以在build.gradle文件中将version属性设置为空字符串 version = '' 之后:

./gradlew build && java -jar build/libs/your-project-name.jar

答案 8 :(得分:0)

对于 Windows,这些命令解决了问题:“错误:无法访问 jarfile springboot.jar”:

cd target java -jar springboot-0.0.1-SNAPSHOT.jar