我已经用. mvn clean install现在我有一个.jar文件,但我无法使用它:
λ java -jar flyway-commandline-xxx.jar
no main manifest attribute, in flyway-commandline-xxx.jar
我错过了什么?
一个可执行的 jar 需要一个“清单文件”——它位于META-INF/MANIFEST.MFjar 内部。
您可以使用 Maven Assembly 插件来生成符合以下内容的清单文件:
...
<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 时调用的 -method 的类。
您可以查看https://github.com/tbsalling/aiscli/blob/master/pom.xml以获得完整的工作示例。