部署简单的Java Spark web应用程序

部署简单的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

我在中尝试了这个简单的“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


有什么帮助吗?谢谢。

在观看了关于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中的项目)