繁体   English   中英

用Maven建立战争和可运行罐子

[英]Building war and runnable jar with Maven

我已经使用Maven启动了一个新的Java项目。 我编写了一组核心功能,使用它们的REST Web服务以及命令行界面。 当我运行maven软件包时,我希望能够:

  1. 使用Web服务发动战争,并且
  2. 构建一个可运行的jar,其中打包了依赖项并启动命令行界面

我如何配置Maven以实现目标?


让我添加一些细节。 我已经知道如何仅生成WAR,以及如何仅生成JAR。 我需要的是同时生产一个maven package WAR必须可在Tomcat上部署,该Tomcat应该显示index.jsp页面。 JAR必须可从控制台运行。

关于Runnable JAR(第2点),您应该使用maven-assembly-plugin,它将创建具有所需所有依赖项的JAR,并且可以从命令行运行它。 在pom.xml的plugins部分中,您必须添加以下内容:

<build>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <configuration>
        <archive>
          <manifest>
            <mainClass>fully.qualified.MainClass</mainClass>
          </manifest>
        </archive>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
      </configuration>
    </plugin>
  </plugins>
</build>

您可以运行:

mvn clean compile assembly:single

更多信息,可以在这里找到。 希望能帮助到你!

对于第1点,我将从使用Maven本身创建可用于构建Web应用程序的pom.xml开始。

$ mvn archetype:generate -DgroupId={project-packaging} 
-DartifactId={project-name} 
-DarchetypeArtifactId=maven-archetype-webapp 
-DinteractiveMode=false

有关更多信息,请参见此链接

将代码正确添加到源代码树并构建WAR之后,可以将其复制到应用程序服务器,并且应该可以使用了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM