我正在使用maven在Spring启动项目。 首先让我告诉你,在intellij中一切运行完美,我可以打开网站,但是: 现在我必须创建一个测试环境,所以我使用maven生成了一个Jar。 我选择了正确的弹簧配置文件,现在我在命令行中使用此命令运行jar:
java -jar .\pegusapps-dashboard-0.4.0-SNAPSHOT.jar --spring.profiles.active=ext-api-dev,dev
当我运行它时,spring boot启动并开始执行intellij中的常规操作,但是当他们编译我们使用rest api的部分时。它给了我这个错误:
Description:
Parameter 0 of constructor in com.pegusapps.dashboard.integration.tempo.TempoServiceImpl required a bean of type 'com.pegusapps.dashboard.integration.tempo.TempoRestApi' that could not be found.
Action:
Consider defining a bean of type 'com.pegusapps.dashboard.integration.tempo.TempoRestApi' in your configuration.
让我解释一下api的结构。 (这是一个jira rest api)
在服务实现的内部,我们在构造函数中自动装配第一个接口,这是错误的来源(来自cmd窗口)。
提前致谢!
答案 0 :(得分:0)
您可能想尝试使用 Apache Maven Shade Plugin 构建JAR,如下所示。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
答案 1 :(得分:0)
如果您还没有使用,请使用以下
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.0.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>