Jetty仅使用命令行运行War

Jetty仅使用命令行运行War,jetty,war,Jetty,War,是否可以仅使用命令行以指定的war文件和上下文路径运行jetty 比如: java -jar $jettyHome/start.jar -Dwar.location=myApp.war -DcontextPath=/myApp OPTIONS=default,plus,jsp 如果您设置了适当的启动配置(jetty.xml),这是可能的 开箱即用,jetty没有附带实现这一点的jetty.xml,但是您可以很容易地编写一个 那就意味着你要么 有一个更像 java -jar $jettyHome

是否可以仅使用命令行以指定的
war
文件和上下文路径运行
jetty

比如:

java -jar $jettyHome/start.jar -Dwar.location=myApp.war -DcontextPath=/myApp OPTIONS=default,plus,jsp

如果您设置了适当的启动配置(jetty.xml),这是可能的

开箱即用,jetty没有附带实现这一点的jetty.xml,但是您可以很容易地编写一个

那就意味着你要么

  • 有一个更像

    java -jar $jettyHome/start.jar -Dwar.location=myApp.war -DcontextPath=/myApp jetty-myapp.xml
    

  • 自己重写etc/jetty.xml并将所需信息放在其中

  • Jetty startup非常简单,所以它实际上只是生成一个XML文件来满足您的需要。 该XML文件可以从系统属性中读取值,因此您可以使用各种“-D”选项。

    使用

    使用Maven,您可以通过向
    pom.xml
    中添加以下内容来安装:

    <build>
        ...
        <plugins>
            ...
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.3</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals><goal>copy</goal></goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.mortbay.jetty</groupId>
                                    <artifactId>jetty-runner</artifactId>
                                    <version>7.5.4.v20111024</version>
                                    <destFileName>jetty-runner.jar</destFileName>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    
    并用作:

    java -jar target/dependency/jetty-runner.jar target/*.war
    


    我已经编写了一个小小的命令行app/Maven原型,它的工作原理与我最初的想法类似。bootstrap应用程序只需将路径传递给WAR和您的端口,就可以启动您选择的servlet容器(Jetty、Tomcat、GlassFish)

    使用Maven,您可以创建并打包此简单应用程序的您自己的实例:

    mvn archetype:generate \
        -DarchetypeGroupId=org.duelengine \
        -DarchetypeArtifactId=war-bootstrap-archetype \
        -DarchetypeVersion=0.2.1
    
    然后像这样启动它:

    java -jar bootstrap.jar -war myapp.war -p 8080 -c /myapp --jetty
    
    下面是实用程序和原型的源代码:

    使用:


    从命令行安装maven:

    sudo apt install maven
    
    从文件夹上的命令行运行war,其中pom.xml:

    mvn jetty:run-war
    

    “将所需信息放入[ect/jetty.xml]中”是否意味着我可以使用命令行中传递的系统属性配置etc/jetty.xml,然后可以使用单个命令在我的设备上运行*any&war文件,或者配置为特定的war?是的,应该可以这样做。实际上我还没有做到这一点,所以可能有一些障碍我没有考虑,但Jetty的XML配置格式允许您做几乎任何您需要的事情,所以我看不出它不起作用的原因。如果我有时间,我会亲自尝试。风滚草徽章,最后是这一个著名的问题!类似地,对于tomcat,还有webapp runner:不确定原因,但这会导致
    java.lang.NoClassDefFoundError:org/apache/tomcat/util/IntrospectionUtils
    错误。是否相关?bitbucket URL已损坏或权限已删除
    java -jar bootstrap.jar -war myapp.war -p 8080 -c /myapp --jetty
    
    $ git clone https://github.com/kissaten/jetty-runner-minimal
    $ cd jetty-runner-minimal && mvn package
    $ java -jar jetty-runner-minimal/target/dependency/jetty-runner.jar myapp.war
    
    sudo apt install maven
    
    mvn jetty:run-war