我有一个项目,包含一个单独的模块,和一些依赖。 我想在一个单独的目录中创建一个JAR,其中包含编译后的模块。此外,我希望在我的模块旁边有依赖项。
无论我如何扭曲IntelliJ的“构建JAR”过程,我的模块的输出都是空的(除了一个META-INF文件)。
我有一个项目,包含一个单独的模块,和一些依赖。 我想在一个单独的目录中创建一个JAR,其中包含编译后的模块。此外,我希望在我的模块旁边有依赖项。
无论我如何扭曲IntelliJ的“构建JAR”过程,我的模块的输出都是空的(除了一个META-INF文件)。
当前回答
当我使用这些解决方案这个错误来:
java -jar xxxxx.jar
在xxx.jar中没有主清单属性
解决方案是:
您必须更改清单目录:
<project folder>\src\main\java
将Java更改为资源
<project folder>\src\main\resources
其他回答
我最近遇到了这个问题,如果之前的解决方案或环节缺少细节,我认为这些步骤很容易遵循。
如何使用IntelliJ IDEA 14.1.5创建一个。jar:
文件>保存全部。 用main方法运行驱动程序或类。 文件>项目结构。 选择标签“Artifacts”。 点击窗口顶部附近的绿色加号按钮。 从添加下拉菜单中选择JAR。选择“From modules with dependencies” 选择主类。 单选按钮应该选择“提取到目标JAR”。按下OK。 选中“基于生成构建”复选框 按应用并确定。 从主菜单中,选择build下拉菜单。 选择选项构建构件。
如果你在spring/mvn项目中工作,你可以使用这个命令:
mvn package -DskipTests
jar文件将保存在目标目录下。
在Maven中,你可以使用这个插件:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>[path you class main]</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>
</plugins>
</build>
我的问题是:我使用Intellij IDEA(尝试了不同的版本)+ Gradle。 当我编译项目并构建artifacf jar时,如上面的响应所示,我收到了一个错误-“没有主清单属性…”
这个解决方案对我来说很有效(特别感谢Thilina Ashen Gamage提供的建议):
摘录-如果你使用外部库,并通过项目设置-工件-添加(+)- Jar -从有依赖关系的模块中构建项目,那么可能是因为程序错误,包含manifest文件的META-INF文件夹不包括到Jar中。为了避免它,创建空的jar文件。
项目设置-工件-添加(+)- Jar -空Jar。META-INF文件夹将被添加到资源文件夹。然后选择你的主类。你会看到以下罐子结构: 注意存在一个文件夹META-INF 然后您就可以构建项目和构件了。这个解决方案也适用于javaFX应用程序。
我尝试了大部分给出的答案,但在我的情况下,“out”文件夹(其中包含jar文件)没有被创建。这就完成了任务:
Build -> Build Artifacts ->(你会看到类名)-> Build
现在,“out”文件夹被创建,jar文件在其中。