运行jar时没有主清单属性错误

时间:2017-07-18 16:00:45

标签: java maven jar runtime-error

我创建了一个maven项目。它运行正常。现在我想通过jar运行我的代码。在maven构建之后,我在.m2文件夹中获得了一个jar文件。当我尝试使用

运行此jar时

java -jar“jar path” 在“jar路径”中没有主要的清单属性。

我的POM.xml是

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.2.1</version>
        <configuration>
            <mainClass>main.Application</mainClass>
        </configuration>
    </plugin>

        </plugins> 
</build>

请建议如何摆脱这个问题。

1 个答案:

答案 0 :(得分:0)

  

现在我想通过jar

运行我的代码

exec-maven-plugin用于在maven构建期间执行程序。
你不想要它。
作为附注,你没有为它指定任何目标 所以,它什么都不做。

您希望以可执行的方式打包jar 所以请使用maven-jar-plugin

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                  <mainClass>main.Application</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>

要创建一个在pom中指定依赖项的JAR,而不是maven-assembly-pluginjar-with-dependencies descriptorRef一起使用

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