代码之家  ›  专栏  ›  技术社区  ›  DenCowboy

maven jar中没有主清单

  •  0
  • DenCowboy  · 技术社区  · 7 年前

    我已经建立 this project mvn clean install . 现在我有一个 .jar 文件,但我无法将其用于:

    λ java -jar flyway-commandline-xxx.jar
    no main manifest attribute, in flyway-commandline-xxx.jar
    

    我错过了什么?

    1 回复  |  直到 7 年前
        1
  •  3
  •   tbsalling    7 年前

    可执行jar需要一个“manifest文件”-它位于 META-INF/MANIFEST.MF 在罐子里。

    您可以使用Maven程序集插件生成符合以下条件的清单文件:

    ...
    <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.5.5</version>
        <configuration>
            <archive>
                <manifest>
                    <mainClass>dk.tbsalling.ais.cli.AisCli</mainClass>
                </manifest>
            </archive>
            <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
        </configuration>
        <executions>
            <execution>
                <id>make-assembly</id>
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    ...
    

    这个 MainClass main(...) -执行jar时调用的方法。

    https://github.com/tbsalling/aiscli/blob/master/pom.xml 一个完整的,有效的例子。