Intellij Idea 13 UI Designer 和自动 Gradle 构建

2024-03-29

我使用 Intellij UI Designer 为项目创建表单。当我使用 idea 构建时,一切工作正常,因为它为我处理编译表单,但由于我们最近改用 Gradle 进行构建,所以还无法生成可执行的 jar 文件。

我的 google-fu 让我找到了几篇文章,解释了编译需要一个 ant 脚本(例如link https://stackoverflow.com/questions/4547515/ant-build-for-intellij-idea-gui-forms, link2 http://devnet.jetbrains.com/thread/437099, link3 https://stackoverflow.com/questions/10482610/intellij-idea-gui-builder-no-java-code-generated,以及我最后的以下内容:link4 http://grahamedgecombe.com/blog/using-intellij-ideas-javac2-in-gradle)

我的项目是一个多模块设置。

根构建.gradle

subprojects {
    apply plugin: 'java'
    apply plugin: 'idea'

    repositories {
        mavenCentral()
    }
}

支持项目 build.gradle

apply plugin:'application'
mainClassName = "dk.OfferFileEditor.OfferFileEditorProgram"

configurations {
    antTask
}

dependencies {
    compile 'org.json:json:20140107'
    compile project(":Shared:HasOffers Api")

    //dependencies for java2c
    antTask files('../../lib/javac2-13.1.1.jar', '../../lib/asm4-all-13.1.1-idea.jar', '../../lib/forms_rt-13.1.1.jar')
    antTask group: 'org.jdom', name: 'jdom', version: '1.1'
}

task compileJava(overwrite: true, dependsOn: configurations.compile.getTaskDependencyFromProjectDependency(true, 'jar')) {
    doLast {
        println 'using java2c to compile'
        project.sourceSets.main.output.classesDir.mkdirs()
        ant.taskdef name: 'javac2', classname: 'com.intellij.ant.Javac2', classpath: configurations.antTask.asPath
        ant.javac2 srcdir: project.sourceSets.main.java.srcDirs.join(':'),
                classpath: project.sourceSets.main.compileClasspath.asPath,
                destdir: project.sourceSets.main.output.classesDir,
                source: sourceCompatibility,
                target: targetCompatibility,
                includeAntRuntime: false
    }
}

但即使编译成功,当我第一次尝试访问 UI 设计器创建的字段之一时,也会引发空指针异常。所以有些东西没有被正确编译。

我可能缺少一些设置,但在论坛和谷歌上投入了几个小时但没有成功后,我仍然没有找到任何解决方案。


所以我把这个事情做得比需要的要复杂得多。

为了使其工作,您需要更改项目中的两件事。

IDEA 13.1.5中的设置

设置 -> GUI 设计器 -> 生成 GUI 到:Java源代码

这使得 IntelliJ IDEA 在表单底部添加 3 个方法:

  • $$$setupUI$$$()
  • $$$setupUI$$$()
  • $$$getRootComponent$$$()

如果它们丢失,请尝试在更改设置后重新编译您的项目。

添加缺少的类

Intellij 有一个名为表单_rt.jar,我在 {IntelliJ IDEA Root}\lib 中找到了我的。并将其更名为“forms_rt-13.1.1.jar"

这需要在编译时包含到您的项目中。如果您像我一样使用 Gradle,您可以将其复制到 {project root}/lib 并添加一个平面文件存储库,如下所示:

repositories {
    mavenCentral()
    flatDir dirs: "${rootDir}/lib"
}

之后,您需要将其包含在项目 gradle 文件中:

dependencies {
    compile name: 'forms_rt', version: '13.1.1'
}

之后应该可以在 IntelliJ IDEA 和 Gradle 中构建它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Intellij Idea 13 UI Designer 和自动 Gradle 构建 的相关文章

随机推荐