运行jenkins构建的可执行jar的问题

时间:2017-10-13 10:38:12

标签: java spring maven jar executable-jar

我有一个可执行jar,当我尝试运行这个jar时,它给我一个错误,说其中一个bean不可用。但是,如果我解压缩这个jar文件  并且替换任何类文件并将其压缩回来,应用程序启动时没有任何问题。无论更换哪个类,在将其拉回后,jar都会启动而没有任何问题。任何人都可以告诉我这里可能出现什么问题?

请注意,当jar在本地创建时,它没有任何问题。但是当我下载已经上传到jenkins的jar并尝试运行它时,它就是这个问题。如前所述,如果我替换这个非工作jar中的任何类文件并将其压缩回来,即使这个jar也开始工作

1 个答案:

答案 0 :(得分:1)

你的本地环境中的char被置于可执行jar可以“看到”必要的依赖项的方式。 您需要将所有必需的依赖项打包到可执行jar中,以便在将jar移动到其他位置时使其运行。您可以使用maven-assembly-plugin来解决这个问题,只需在构建设置中的maven的pom.xml中添加以下内容:

<!-- BUILD SETUP -->
<build>
    <plugins>
        ....
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>path.to.your.MainClass</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

希望它有所帮助!