在 IntelliJ IDEA 中创建 Java Gradle 项目并构建 .jar 文件 - 如何?

Posted

技术标签:

【中文标题】在 IntelliJ IDEA 中创建 Java Gradle 项目并构建 .jar 文件 - 如何?【英文标题】:Creating a Java Gradle project and building the .jar file in IntelliJ IDEA - How to? 【发布时间】:2016-09-03 03:53:46 【问题描述】:

是否有说明如何正确创建 Java Gradle 项目和构建 .jar 文件的教程?

当我创建 Java 项目并添加 Gradle 时:文件 -> 新建 -> 模块 -> Gradle -> ...我收到有关 Java EE websocket 不可用的错误(我使用的是终极版)。但是,我可以通过选择 File -> New -> Project-> Gradle -> 成功创建项目,这为我提供了一个可以调试的带有 Gradle 的 Java 项目。但是,当我尝试创建工件(.jar 文件)时,我收到错误消息。我假设错误源于我在项目结构设置中犯的错误。

Buildfile: build.xml does not exist!
Build failed

Error: Could not find or load main class Main

此时我的项目一团糟,我认为最好的选择是创建另一个项目并将 Main.class 和 Gradle 的依赖项从旧项目复制/粘贴到该项目上。

但是,这次如何正确创建项目呢?

【问题讨论】:

【参考方案1】:
    创建新的 Gradle(不是 Java)项目。请务必在对话框中选择 Java 选项。点击下一步。

    填写 GroupId、ArtifactId 和版本

    选择您的 gradle 发行版。您可以安全地使用推荐的选项。

    选择项目名称和位置

    点击完成

    您将 java 类放到 src/main/java 文件夹中。使用第三方库时,请确保将它们声明为 Gradle 依赖项。

    您可以使用 Gradle 选项卡 → 任务 → 构建(双击)构建您的源代码

    您可以在“运行”选项卡中查看构建结果

    如果出现错误,您可以通过单击以下按钮查看详细信息:

【讨论】:

感谢您的回答(尤其是图片)。但是,我收到一个错误:i.imgur.com/gfsAhBD.png 能否请您发布实际的控制台输出? 您是否为正在使用的库添加了 gradle 依赖项? 尝试清理任务然后重新构建? 好的!搭建成功!现在,我的 .jar 文件在哪里?它在 /build/libs 中吗?我可以看到一个 jar 文件,但它的大小只有 7 KB。【参考方案2】:

如果您使用 Intellij,您只需打开 Gradle 插件(它位于 IDE 的右侧)并执行命令:bootRepackage。有了这个,你将有一个 jar 在:your_project_folder/build/libs。

【讨论】:

这是 android SDK 位置设置。 intellij 也有一个插件: 问题是关于 Java EE。没有提到 Android 框架。 是的,图片已更改,适用于带有 gradle 的 intellij 的 java 项目。【参考方案3】:

如果您遇到no main manifest attribute 的问题,可执行文件Jar 没有运行,我会执行以下操作。

1:转到您的build.gradle 并在底部添加以下内容。

jar 
    manifest 
        attributes 'Main-Class': 'your_package_name.YOUR_MAIN_CLASS'
    
    from  configurations.compile.collect  it.isDirectory() ? it : zipTree(it)  

    转到View > Tool Windows > Gradle

    将显示右侧的面板,现在单击build 以获取更多任务。在build 任务下双击build 选项并等待任务完成。

    现在,转到您的项目目录并打开build > libs,可执行文件Jar 将在那里。

我不确定这是否正确。 如果有效就不用接受了,希望对大家有所帮助。

【讨论】:

【参考方案4】:

第 1 步:将这些行添加到您的 build.gradle

jar 
from 
    configurations.runtime.collect 
        it.isDirectory() ? it : zipTree(it)
    
    configurations.compile.collect 
        it.isDirectory() ? it : zipTree(it)
    

manifest 
    attributes 'Main-Class': 'YOUR MAIN CLASS'


exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA'

第 2 步: cleanbuild

我相信它会起作用的,问候

【讨论】:

以上是关于在 IntelliJ IDEA 中创建 Java Gradle 项目并构建 .jar 文件 - 如何?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 IntelliJ IDEA 中创建 .jar 文件或导出 JAR(如 Eclipse Java 存档导出)? [复制]

如何在 IntelliJ IDEA 中创建 JavaFX Maven 项目?

IntelliJ IDEA中创建Web聚合项目(Maven多模块项目)

开发环境Android 命令行中执行 Java 程序 ( IntelliJ IDEA 中创建 Java / Kotlin 工程 | dx 打包 DEX 字节码文件 | dalvikvm 命令 )(代码

IntelliJ Idea中创建package的问题

如何在 intellij IDEA 中创建 spring maven 项目 [关闭]