idea运行正常,jar包运行报错

模块 pom.xml 配置如下 :

<plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>

            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
            <!-- 如果没有该项配置,devtools不会起作用,即应用不会restart -->
            <!-- 
            <configuration>
    		<fork>true</fork>
            </configuration>
            -->
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>
    </plugins>

    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*</include>
            </includes>
            <filtering>false</filtering>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>

以上报错说明:

1)configuration/fork: 原先有配置,后面可以是去掉该配置,但他的作用是与devtools有关,如果没设置,就不能动态编译 (可能不是发布后 java -jar 运行报错的原因);

2) resources/resource/includes/include 的路径;

原先为 **/*.xml ,**/*.yml 等有指定后缀的,后改为 **/* ,因为工程 resources 还有 static/**/*.html 或js 等的静态文件;

3) 在依赖的jar 有包括 /resources/META-INF/spring.factoires 这样的文件,可能受 第2点配置指定文件后缀没找包到 maven install 的jar 里,才报错; (可能是报错的原因)

———————————

11-07,在本地安装 cygwin工具 (将第 2 点改后),执行正常,但无法访问,提示找不到 thymeleaf 的index模板,就是 第2点的问题;没有报SimpleMQServiceImpl的NoSuchBean的问题,就是没有找到自动配置的Bean,因为 这个类在依赖的 jar 里,采用 spring.factories 触发自动配置;但可能 第2点原因,导至这个spring.factories 没在运行环境里,导至没有自动配置到容器内;

———————————–

其他:

plugin/configuration/classifier=exec这会在 .jar 前加上_exec名称部分;

欢迎您的到来,感谢您的支持!

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注