我试图在Spring Boot+Gradle项目中构建一个可执行的jar,但目前没有任何工作。下面是最简单的结构。可能,Gradle配置中缺少一些东西。
格雷德尔:
buildscript {
ext {
springBootVersion = '1.5.8.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
jar {
manifest {
attributes 'Main-Class': 'com.example.demo.DemoApplication'
}
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
}
主配置文件:
@RestController
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping(value = "/")
public String index() {
return "index";
}
}
当我运行java-jar1.jar这样的jar文件时,出现了以下异常:
[main] ERROR org.springframework.boot.SpringApplication - Applicati
on startup failed
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to proces
s import candidates for configuration class [com.example.demo.DemoApplication];
nested exception is java.lang.IllegalArgumentException: No auto configuration cl
asses found in META-INF/spring.factories. If you are using a custom packaging, m
ake sure that file is correct.
at org.springframework.context.annotation.ConfigurationClassParser.proce
ssDeferredImportSelectors(ConfigurationClassParser.java:556)
at org.springframework.context.annotation.ConfigurationClassParser.parse
(ConfigurationClassParser.java:185)
at org.springframework.context.annotation.ConfigurationClassPostProcesso
r.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:308)
at org.springframework.context.annotation.ConfigurationClassPostProcesso
r.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:228)
at org.springframework.context.support.PostProcessorRegistrationDelegate
.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.ja
va:272)
at org.springframework.context.support.PostProcessorRegistrationDelegate
.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:92)
at org.springframework.context.support.AbstractApplicationContext.invoke
BeanFactoryPostProcessors(AbstractApplicationContext.java:687)
at org.springframework.context.support.AbstractApplicationContext.refres
h(AbstractApplicationContext.java:525)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationConte
xt.refresh(EmbeddedWebApplicationContext.java:122)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.
java:693)
at org.springframework.boot.SpringApplication.refreshContext(SpringAppli
cation.java:360)
at org.springframework.boot.SpringApplication.run(SpringApplication.java
:303)
at org.springframework.boot.SpringApplication.run(SpringApplication.java
:1118)
at org.springframework.boot.SpringApplication.run(SpringApplication.java
:1107)
at com.example.demo.DemoApplication.main(DemoApplication.java:13)
Caused by: java.lang.IllegalArgumentException: No auto configuration classes fou
nd in META-INF/spring.factories. If you are using a custom packaging, make sure
that file is correct.
at org.springframework.util.Assert.notEmpty(Assert.java:277)
at org.springframework.boot.autoconfigure.AutoConfigurationImportSelecto
r.getCandidateConfigurations(AutoConfigurationImportSelector.java:153)
at org.springframework.boot.autoconfigure.AutoConfigurationImportSelecto
r.selectImports(AutoConfigurationImportSelector.java:95)
at org.springframework.context.annotation.ConfigurationClassParser.proce
ssDeferredImportSelectors(ConfigurationClassParser.java:547)
... 14 common frames omitted
可能出了什么问题?
在Boot2.x中,bootJar和bootWar任务负责打包应用程序。
bootJar任务负责创建可执行jar文件。一旦应用java插件,它就会自动创建。
如果没有生成可执行的JAR/WAR文件,请手动运行下面的gradle任务。
$./gradlew bootJar
$./gradlew bootWar
我已经找了两天来解决这个问题,但我没有找到解决办法。首先我想构建fat-jar,然后我放弃了它看起来更复杂,所以我开始构建普通的可执行Jar。我正在用Gradle插件在NetBeans 8.2中构建一些程序(http://plugins.NetBeans.org/plugin/44510/gradle-support) 我的项目结构是这样的: 项目结构 我是一个比较新的年级,我使用它不到一个月。我
如何用Gradle创建可执行JAR? 我尝试了,但它不起作用。
我想建一个图书馆。我的build.Gradle文件中有Spring Boot Gradle插件: 我的库没有主类。为防止“主类未配置...”错误,我将其添加到Build.Gradle: 在org.gradle.api.project类型的根项目“MySuperLibrary”上找不到参数[build_3886uiniuyuorta9lpa9n4f5c$_run_closure3@1975ec48]
我刚刚将我的构建脚本移到了使用 gradle-script-kotlin,使用 gradle 3.4 和 gradle-script-kotlin 0.6。 我可以让构建脚本生成一个jar,但是清单不包括主类名。根据我找到的其他帖子,我尝试过以KT和Kt结尾的主类名。 构建脚本如下所示: 我还想创建一个包含运行时依赖项的胖jar,我可以看到很多关于时髦构建脚本的示例,但对于gradle-scrip
我希望在编译任何子项目之前先执行protobuf任务,因为我的子项目依赖于从protobuf任务生成的java文件。那么我怎样才能做到这一点呢?我不想在每个子项目中都有protobuf任务,相反,我只想在根项目中同时完成它,但在编译子项目之前。
问题内容: 我正在尝试构建一个依赖于下载的外部jar的可执行jar程序。在我的项目中,我将它们包含在构建路径中,并且可以在eclipse中运行和调试。 当我尝试将其导出到jar中时,我可以运行该程序,但是当我尝试按下包含来自外部jar的函数调用和类的按钮时,则无法执行。我已经编辑了环境变量(Windows XP)CLASSPATH,以包括所有外部jar的路径,但是它不起作用。 需要注意的一点是,我