部署简单的Java Spark web应用程序
我在中尝试了这个简单的“Hello World”web应用程序(使用maven设置),在Windows平台上使用Eclipse。如果它是从Eclipse运行的,那么它工作得非常好 但我想要实现的是让它在我云中的CentOS 6.x中运行,我使用putty通过ssh访问它。我已经在CentOS安装了JDK 8和maven。我没有安装任何应用程序服务器(没有Tomcat等),因为我希望Spark应用程序使用其嵌入式AS(即Jetty)运行 我还没有找到如何将这样一个Spark应用程序从Eclipse/Maven/Windows部署到云中的CentOS服务器。我发现一些教程解释了如何在heraku上部署,甚至解释了如何在不同的AS中部署它(不使用嵌入式的),但没有一个像我所解释的那样简单 在Eclipse中,如果我将项目导出为jar,并将jar上载到CentOS服务器,使用“java-jar appname.jar”运行它是不起作用的,那么它似乎既没有Spark库,也没有嵌入式Jetty部署简单的Java Spark web应用程序,java,maven,deployment,web-deployment,Java,Maven,Deployment,Web Deployment,我在中尝试了这个简单的“Hello World”web应用程序(使用maven设置),在Windows平台上使用Eclipse。如果它是从Eclipse运行的,那么它工作得非常好 但我想要实现的是让它在我云中的CentOS 6.x中运行,我使用putty通过ssh访问它。我已经在CentOS安装了JDK 8和maven。我没有安装任何应用程序服务器(没有Tomcat等),因为我希望Spark应用程序使用其嵌入式AS(即Jetty)运行 我还没有找到如何将这样一个Spark应用程序从Eclipse
有什么帮助吗?谢谢。在观看了关于maven的视频教程后,我找到了解决方案。 首先,您需要将以下内容添加到Eclipse中maven项目的xml.pom文件中:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptorRefs>
<!-- This tells Maven to include all dependencies -->
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>chatapp.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
org.apache.maven.plugins
maven编译器插件
2.3.2
1.8
1.8
maven汇编插件
包裹
单一的
带有依赖项的jar
聊天应用程序
告诉maven在哪里可以找到主类是很重要的。在我的例子中,我将我的应用程序命名为chatapp(因为我计划将这个简单的“Hello World”应用程序发展成一个聊天应用程序),包含Main方法的主类也命名为Main,它位于chatapp包下,因此它是chatapp.Main。您可以在
节点之后添加这些行。因此,pom文件应如下所示:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.orboan</groupId>
<artifactId>chatapp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>new-spark-project</name>
<dependencies>
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-core</artifactId>
<version>2.3</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptorRefs>
<!-- This tells Maven to include all dependencies -->
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>chatapp.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
4.0.0
com.orboan
聊天应用
0.0.1-快照
罐子
新星火计划
com.sparkjava
火花芯
2.3
org.apache.maven.plugins
maven编译器插件
2.3.2
1.8
1.8
maven汇编插件
包裹
单一的
带有依赖项的jar
聊天应用程序
现在,重要的是不要在Eclipse中使用export实用程序(右键单击PackageExplorer中的项目,并从上下文菜单中选择“不要导出”),因为您通常希望将java项目导出到jar文件中进行部署。这将生成一个jar文件,但不需要所有依赖项
相反,您必须(从上下文菜单)选择RunAs>Maven Install。这将(从pom.xml)生成包含所有所需依赖项的对应jar文件,在我的例子中是chatapp-0.0.1-SNAPSHOT-jar-with-dependencies.jar
然后,将该jar文件上传到CentOS服务器,并使用java-jar
chatapp-0.0.1-SNAPSHOT-jar-with-dependencies.jar
。现在应该可以了。看了关于maven的视频教程后,我找到了解决方案。
首先,您需要将以下内容添加到Eclipse中maven项目的xml.pom文件中:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptorRefs>
<!-- This tells Maven to include all dependencies -->
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>chatapp.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
org.apache.maven.plugins
maven编译器插件
2.3.2
1.8
1.8
maven汇编插件
包裹
单一的
带有依赖项的jar
聊天应用程序
告诉maven在哪里可以找到主类是很重要的。在我的例子中,我将我的应用程序命名为chatapp(因为我计划将这个简单的“Hello World”应用程序发展成一个聊天应用程序),包含Main方法的主类也命名为Main,它位于chatapp包下,因此它是chatapp.Main。您可以在
节点之后添加这些行。因此,pom文件应如下所示:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.orboan</groupId>
<artifactId>chatapp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>new-spark-project</name>
<dependencies>
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-core</artifactId>
<version>2.3</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptorRefs>
<!-- This tells Maven to include all dependencies -->
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>chatapp.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
4.0.0
com.orboan
聊天应用
0.0.1-快照
罐子
新星火计划
com.sparkjava
火花芯
2.3
org.apache.maven.plugins
maven编译器插件
2.3.2
1.8
1.8
maven汇编插件
包裹
单一的
带有依赖项的jar
聊天应用程序
现在,重要的是不要在Eclipse中使用导出实用程序(右键单击PackageExplorer中的项目)