如何将Maven项目部署为jar文件

时间:2018-09-23 13:31:01

标签: java maven

在清理项目后,我已经多次“构建” pom.xml文件。

设置目标并尝试安装时,我已经打包并编译了。它创建了一个“ SNAPSHOT” jar文件,但是当我尝试执行该文件时,没有任何反应。

我试图在命令行(CMD)上执行它以查看错误,并且收到此消息:

  

在smart.mirror-0.0.1-SNAPSHOT.jar中没有主清单属性

任何帮助将不胜感激。

enter image description here

2 个答案:

答案 0 :(得分:1)

您确实需要使用maven jar插件并定义主类。

 <plugin> 
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-jar-plugin</artifactId>
     <configuration>
          <archive>
              <manifest>
                  <mainClass>
                     com.yourpackage.YourMainClass
                  </mainClass>
              </manifest>
          </archive>
     </configuration>
</plugin>

通常,您确实具有依赖项,可以根据需要使用Shade插件将其打包到自己的jar中。

答案 1 :(得分:0)

基本上,您需要将依赖项添加到pom中,然后重新构建它。请将此依赖项添加到您的pom中:

<dependency>
    <groupId>com.mashape.unirest</groupId>
    <artifactId>unirest-java</artifactId>
    <version>1.4.9</version>
</dependency>

此后,右键单击该项目,然后选择maven并将其清理。清洁后,请遵循相同的步骤并选择构建。它将生成可执行jar。

必须使用Maven Assembly Plugin而不是Jar来部署具有可执行Jar的依赖项。它不在您的pom中。它应该类似于下面提到的插件配置:

<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>