我有一个可执行jar,当我尝试运行这个jar时,它给我一个错误,说其中一个bean不可用。但是,如果我解压缩这个jar文件 并且替换任何类文件并将其压缩回来,应用程序启动时没有任何问题。无论更换哪个类,在将其拉回后,jar都会启动而没有任何问题。任何人都可以告诉我这里可能出现什么问题?
请注意,当jar在本地创建时,它没有任何问题。但是当我下载已经上传到jenkins的jar并尝试运行它时,它就是这个问题。如前所述,如果我替换这个非工作jar中的任何类文件并将其压缩回来,即使这个jar也开始工作
答案 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>
希望它有所帮助!