如何使用rest api为服务器部署Maven java web项目的可执行文件

问题描述 投票:0回答:1

我做了一个用于休息api的java maven项目..现在我需要将它部署在服务器上..这就是为什么我想制作一个可执行的jar ..我怎么能做到这个....?

在这里,我使用Jersey-2作为休息api。 Project File Structure

Maven插件:

 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.1.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>net.javatutorial.tutorials.services.FileUploadService</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
java rest maven web-deployment jersey-2.0
1个回答
0
投票

如果你想要一个可执行的jar,你的Jersey应用程序需要是一个独立的应用程序,这是一个使用main方法从“主”类运行的应用程序。要轻松创建独立应用程序,您可以使用Jersey Getting Started中提到的Maven原型。 (您可以在this post中查看原型中生成的文件)。

mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-grizzly2 \
-DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false \
-DgroupId=com.example -DartifactId=simple-service -Dpackage=com.example \
-DarchetypeVersion=2.27

一旦你拥有独立的应用程序,那么你可以像你目前一样使用maven-shade-plugin构建它。 Main类是你应该在<mainClass>元素中指定的。我应该提到的一件事是你还应该使用ServicesResourceTransformer来连接服务文件1


1 - 见Jersey fails when creating uber jar with maven-assembly-plugin

© www.soinside.com 2019 - 2024. All rights reserved.