运行jar的反应与在Intellij中运行的反应不同

时间:2018-03-16 10:41:39

标签: java spring-boot intellij-idea cmd jira-rest-api

我正在使用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)

  • 我们使用一个接口来完成对其余api的所有调用。
  • 然后我们有api服务层的接口。
  • 然后我们有了服务实现,他们访问了所有调用api的接口。

在服务实现的内部,我们在构造函数中自动装配第一个接口,这是错误的来源(来自cmd窗口)。

提前致谢!

2 个答案:

答案 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>