在Eclipse中以渐变方式导入SWT

在Eclipse中以渐变方式导入SWT,eclipse,gradle,swt,Eclipse,Gradle,Swt,在EclipseJava项目中以渐变方式导入SWT的正确方法是什么 Stackoverflow上的以下解决方案不起作用(它导入了一个不包含类的小型SWT库,我无法使用任何SWT功能): 我的应用程序需要使用SWT UI类和小部件(如显示、Shell、复合等),并且必须是跨平台的 请注意,我的应用程序还使用LWJGL,我可以使用下面的页面成功导入LWJGL,该页面提供了要使用的完整Gradle代码(单击Release下的build,然后选择Gradle): 谢谢您的帮助。我不完全确定eclip

在EclipseJava项目中以渐变方式导入SWT的正确方法是什么

Stackoverflow上的以下解决方案不起作用(它导入了一个不包含类的小型SWT库,我无法使用任何SWT功能):

我的应用程序需要使用SWT UI类和小部件(如显示、Shell、复合等),并且必须是跨平台的

请注意,我的应用程序还使用LWJGL,我可以使用下面的页面成功导入LWJGL,该页面提供了要使用的完整Gradle代码(单击Release下的build,然后选择Gradle):


谢谢您的帮助。

我不完全确定eclipse插件和SWT应用程序之间的区别,但您可以使用作为参考。这些实用程序可能有用。

**免责声明**我以前从未使用过SWT

我将SWT JAR放在一个类似maven的目录结构中(注意,我在这里选择了random group/artifact/version…请适当调整)

您可以在
build.gradle

org.gradle.nativeplatform.platform.OperatingSystem os = org.gradle.internal.os.OperatingSystem.current()
def osDeps = []
if (os.windows) {
    osDeps = ['com.eclipse.swt:swt-core:4.1:windows', 'com.eclipse.swt:swt-utils:4.1:windows']
} else if (os.linux) {
    osDeps = ['com.eclipse.swt:swt-core:4.1:linux', 'com.eclipse.swt:swt-utils:4.1:linux']
} else ... {
}

apply plugin: 'java'
repositories {
    maven {
        url file('myRepo')
    }
}
dependencies {
   compile 'com.foo:common-stuff:1.0'
   compile osDeps 
}

或者,如果SWT JAR在maven存储库中可用,则应使用该存储库而不是本地文件夹。

从Eclipse4.6.2开始,SWT(以及所有Eclipse)将发布到maven central。如果您使用的是Gradle,goomph插件有一个mavencentral插件,使其非常简单:

apply plugin: 'com.diffplug.gradle.eclipse.mavencentral'
eclipseMavenCentral {
  release '4.7.0', {
    compile 'org.eclipse.swt'
    useNativesForRunningPlatform()
  }
}

要完成@Ned Twigg的回答,完整的
build.gradle
文件应该如下所示:

plugins {
    id 'java'
    id "com.diffplug.gradle.eclipse.mavencentral" version "3.17.3"
}
...
apply plugin: 'com.diffplug.gradle.eclipse.mavencentral'
eclipseMavenCentral {
    release '4.7.0', {
        compile 'org.eclipse.swt' // SWT for Windows in Gradle
        useNativesForRunningPlatform()
    }
}

您能提供Gradle构建文件的相关部分吗?我的build.Gradle文件如下(这是在Eclipse中创建新的普通Gradle项目时得到的):。我应该申报什么才能正确导入SWT并使所有内容跨平台?谢谢。不幸的是,这个build.gradle文件中有很多东西。我没有使用插件项目,只是一个普通的JavaGradle项目。您是否介意帮助我隔离与SWT相关的行并将这些行合并到上述提供的代码中(请参阅pastebin链接)?“您介意帮助我隔离与SWT相关的行并将这些行合并到上述提供的代码中吗”不,谢谢,这不起作用。该文件中列出了一种有效的解决方案:我也在使用core.commands,而“compile'org.eclipse:core.commands:3.+'”不起作用,尽管“core:commands”有效。我想这是因为我们使用不同的存储库。真是一团糟。它不起作用<代码>日食事件中心无法识别。最好粘贴完整的gradle脚本。也许这些链接会有帮助:好的,这确实有效。格雷德尔刚刚给了我3.106分。好的,就是这样,只需做一个完整的答案,并通知OP接受它。我所做的是在
plugin{}
部分下添加
id“com.diffplug.gradle.eclipse.mavencentral”version“3.17.3”
。PS:我希望Eclipse团队能够更清楚地说明这一点,这样我们就不必在这里而不是文档中搜索了。。。。。
plugins {
    id 'java'
    id "com.diffplug.gradle.eclipse.mavencentral" version "3.17.3"
}
...
apply plugin: 'com.diffplug.gradle.eclipse.mavencentral'
eclipseMavenCentral {
    release '4.7.0', {
        compile 'org.eclipse.swt' // SWT for Windows in Gradle
        useNativesForRunningPlatform()
    }
}