我目前有一个基于java的maven项目,在运行时,旋转jetty服务器并将web应用程序加载到localhost:4567。我想将此应用程序部署到CentOS虚拟机上的服务器,但我不知道从哪里开始。 CentOS目前运行Apache服务器,安装了maven,DB和其他依赖项。
我将项目打包为.jar,但我目前无法运行.jar文件。当我通过命令提示符或IDE运行jar文件时,我得到一个Exception“java.lang.NoClassDefFoundError:spark / Route”。
pom.xml看起来像这样:
.credits {
opacity: .2;
text-align: justify;
text-align-last: center;
-moz-text-align-last: center; /* Firefox needs a prefix, according to the docs */
font-size: 18px;
line-height: 21px;
}
据我所知,我不应该将Spark Java放入我的类路径中。有谁知道这里发生了什么?
答案 0 :(得分:2)
你应该使用maven-assembly-plugin构建一个包含依赖项的可执行jar,也称为fat jar。
而不是maven-jar-plugin,请尝试在pom.xml中使用以下内容:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>${project.artifactId}</finalName>
<attach>false</attach>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.labfinder.Main</mainClass>
</manifest>
</archive>
</configuration>
</execution>
</executions>
</plugin>