Java jar中没有主清单属性

Java jar中没有主清单属性,java,maven,jar,manifest,maven-shade-plugin,Java,Maven,Jar,Manifest,Maven Shade Plugin,我正在尝试运行maven shade插件创建的jar。我正在以以下方式配置主类: <project> ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.3

我正在尝试运行maven shade插件创建的jar。我正在以以下方式配置主类:

<project>
...
<build>
<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>2.3</version>
    <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>shade</goal>
        </goals>
        <configuration>
          <transformers>
            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
              <manifestEntries>
                <Main-Class>org.comany.MainClass</Main-Class>
                <Build-Number>123</Build-Number>
              </manifestEntries>
            </transformer>
          </transformers>
        </configuration>
      </execution>
    </executions>
  </plugin>
</plugins>
编辑:
我使用jar tf app.jar检查了jar的内容,并看到了MANIFEST.MF文件。但是它没有主类的条目。如何确保jar中的清单文件中有此条目,以便将其添加到shade插件配置中?

不要忘记将shade添加为目标:


mvn clean-package-shade:shade

Maven的shade插件使用JAR插件生成的JAR,并在其上添加依赖项。由于shade插件上的转换似乎无法正常工作,因此您只需如下设置jar插件的配置:


...
...     
org.apache.maven.plugins
maven jar插件
3.0.2
真的
com.mypackage.MyClass
[此处没有变压器的阴影插件定义]

检查是否有多个main()。如果您这样做,maven需要知道使用哪一个。

这并不能提供问题的答案。若要评论或要求作者澄清,请在其帖子下方留下评论。-@穆罕默德对我来说,这是完全相同错误的解决方案,可能对作者也是。这一个对我不起作用。我仍然得到了同样的错误。这也是解决方案,我认为作为它自己的答案是很好的
 "no main manifest attribute, in  app.jar"
<build>
  ...
  <plugins>
    ...     
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <version>3.0.2</version>
      <configuration>
        <archive>
          <manifest>
            <addClasspath>true</addClasspath>
            <mainClass>com.mypackage.MyClass</mainClass>
          </manifest>
        </archive>
      </configuration>
    </plugin>
  </plugins>
  <plugin>
    [Your shade plugin definition without the transformers here]
  </plugin> 
</build>