创建一个具有可执行类文件的uberjar

时间:2018-04-14 19:24:09

标签: java uberjar

我使用了maven-shade-plugin进行构建,做了一个mvn-clean-package并且能够从目标目录中执行代码,如下所示: <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> <configuration> <finalName>uber-${artifactId}-${version}</finalName> </configuration> </plugin> </plugins>

然而,我有点困惑我将如何创建一个包含所有内容的可执行jar,以便这个jar文件可以在一台单独的机器上运行 - 所有内容都捆绑在其中 我的pom文件的构建部分如下

mvn clean package

然后我像这样做maven包:java -jar target/uber-weather-lookup-1.0-SNAPSHOT.jar。 运行 no main manifest attribute, in target/uber-weather-lookup-1.0-SNAPSHOT.jar生成以下错误 class MyEdit(urwid.Edit): def __init__(self, my_attribute, *args, **kw): super().__init__(*args, **kw) self.my_attribute = [] def my_method(self): #some code that modifies my_attribute return self.my_attribute 。 我是新手,所以有人可以告诉我我做错了什么吗?

1 个答案:

答案 0 :(得分:1)

使用maven-jar-plugin指定主类

您可能还需要使用maven-assembly-plugin来打包您的依赖项(我总是很难确定何时使用程序集与插件插件)

请看一下这个答案的例子 - https://stackoverflow.com/a/15990345