私はmvn spring-boot:run
でそれを開始しますが、ここでエラーにjava -jar jarName.jar
結果Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'HomeService' available
春ブーツジャーNoSuchBeanDefinitionException
を実行しようとした場合に適しています春のブートアプリケーションを建て、それがhttps://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.htmlここで説明されるようにspring-boot-maven-plugin
と私のpom.xmlで、ここでは、ここで
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/resources/${profileName}</directory>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<compilerArgument>-proc:none</compilerArgument>
</configuration>
</plugin>
<plugin>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<version>2.2.4</version>
<executions>
<execution>
<id>process</id>
<goals>
<goal>process</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<!-- source output directory -->
<outputDirectory>target/metamodel</outputDirectory>
<!-- <processors> -->
<!-- <processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor> -->
<!-- </processors> -->
<overwrite>true</overwrite>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.5.8.RELEASE</version>
<configuration>
<executable>true</executable>
<profiles>
<profile>dev</profile>
<profile>live</profile>
</profiles>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>live</id>
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<tasks>
<delete file="src/main/resources/application.properties" />
<copy file="src/main/resources/application-live.properties"
tofile="src/main/resources/application.properties" />
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>dev</id>
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<tasks>
<delete file="src/main/resources/application.properties" />
<copy file="src/main/resources/application-dev.properties"
tofile="src/main/resources/application.properties" />
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
Spring-Boot Executable-Jar NoSuchBeanDefinitionExceptionは、Appクラス
@Configuration
@EnableAutoConfiguration
@ComponentScan (basePackages = { "myProject.status" })
public class App {
private static final Logger logger = LogManager.getLogger(App.class);
public static void main(String[] args) throws BeansException, IOException, InterruptedException {
logger.info("APPLICATION STARTED");
ConfigurableApplicationContext context = SpringApplication.run(App.class, args);
logger.info(context.getBean(HomeService.class).home());
}
01です
がここHomeService
package myProject.status.service;
@Service
public class HomeService {
public String home() {
return "application works";
}
}
私は@PostConstruct
方法、すべてのものとすべてのAutowiresは準備が整っているはずでBeanを取得することも試みている、それはまた、動作しません。
mvn spring-boot:run
とmvn package
の違いは何ですか?どうすれば正しい瓶を作ることができますか?
ありがとうございます!
Maven jarプラグインを使用するのではなく、スプリングブートプラグインを使用してください。 – PaulNUK
@PaulNUKすべてのプロファイルを無効にして、そのセクションをpomからspring-boot-maven-pluginの設定にしても、同じエラーが発生する – Slava
起動時にサービスクラスがスキャンされていますか? – pvpkiran