使用Maven构建战争和可运行的jar

时间:2015-06-28 09:33:20

标签: java eclipse maven

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

  1. 与网络服务建立战争,AND
  2. 构建一个可运行的jar,它包含依赖项并启动命令行界面
  3. 我如何配置Maven以达到目标?

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

2 个答案:

答案 0 :(得分:0)

关于Runnable JAR(第2点),你应该使用maven-assembly-plugin,它将创建一个包含你需要的所有依赖项的JAR,你可以从命令行运行它。在pom.xml的插件部分,你必须添加如下内容:

<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

更多信息,可以找到here。 希望它有所帮助!

答案 1 :(得分:0)

对于第1点,我将首先使用Maven创建一个可用于构建Web应用程序的pom.xml。

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

有关详情,请参阅this link

一旦您将代码适当地添加到源树并构建了WAR,您就可以将其复制到应用程序服务器,并且应该准备好了。