从命令行运行maven Web应用程序

时间:2017-02-25 19:27:18

标签: java maven

我正在尝试通过以下方式运行我的maven Web应用程序:

java -jar CliniKeyMaven-1.0-SNAPSHOT.war

首先,我在CliniKeyMaven-1.0-SNAPSHOT.war中遇到错误没有主要清单属性,并且在搜索了很长时间之后我在我的pom.xml中达到了这个:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.1.1</version>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>manifest</goal>
                </goals>
            </execution>
        </executions>
    <configuration>
        <failOnMissingWebXml>false</failOnMissingWebXml>
        <attachClasses>true</attachClasses>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <mainClass>com.mycompany.clinikeymaven.App</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>

这是包含main的App.java:

package com.mycompany.clinikeymaven;

public class App {
    public static void main( String[] args ) {
        System.out.println( "Hello World!" );
    }
}

但我现在面临错误:

  

无法找到或加载主类com.mycompany.clinikeymaven.App

当我从NetBeans运行应用程序时,它正在运行,但我需要从命令行运行它...我该怎么办?

3 个答案:

答案 0 :(得分:0)

这是一个有效的pom。请尝试这个。

production

答案 1 :(得分:0)

您需要使用Maven jar plugin而不是Maven war plugin

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <mainClass>com.mycompany.clinikeymaven.App</mainClass>
            </manifest>
            <compress>true</compress>
            <index>true</index>
        </archive>
    </configuration>
</plugin>

正如人们在评论中所说,使用maven-war-plugin您正在创建一个.war文件,需要部署应用服务器才能运行。
例如,生成.war可以部署在tomcat服务器上。

答案 2 :(得分:-1)

尝试

java -cp CliniKeyMaven-1.0-SNAPSHOT.war com.mycompany.clinikeymaven.App

或者,您可以将清单文件的内容更新为以下内容:

Main-Class: com.mycompany.clinikeymaven.App

然后您可以尝试按以下方式运行它:

java -jar CliniKeyMaven-1.0-SNAPSHOT.war