【问题标题】:Creating a Java Gradle project and building the .jar file in IntelliJ IDEA - How to?在 IntelliJ IDEA 中创建 Java Gradle 项目并构建 .jar 文件 - 如何?
【发布时间】: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 的依赖项从旧项目复制/粘贴到该项目上。

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

【问题讨论】:

    标签: java gradle intellij-idea jar


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

    1. 填写 GroupId、ArtifactId 和版本

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

    1. 选择项目名称和位置

    1. 点击完成

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

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

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

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

    【讨论】:

    • 感谢您的回答(尤其是图片)。但是,我收到一个错误: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) } }
    }
    

    1. 转到View > Tool Windows > Gradle

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

    1. 现在,转到您的项目目录并打开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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-03
        • 2014-10-05
        • 2017-05-14
        • 1970-01-01
        • 1970-01-01
        • 2022-12-18
        • 2014-10-04
        • 2020-10-18
        相关资源
        最近更新 更多