在Eclipse Java项目中导入SWT Gradle方式的正确方法是什么?
Stackoverflow上的以下解决方案不起作用(它导入一个不包含类的小型SWT库,我无法使用任何SWT功能):
Import SWT as a Gradle dependency
我的应用程序需要使用SWT UI类和小部件(例如Display,Shell,Composites等),并且必须绝对是跨平台的。
请注意,我的应用程序也使用LWJGL,我可以使用下面的页面成功导入,该页面提供了要使用的完整Gradle代码(在Release下点击构建然后选择Gradle):
LWJGL build.gradle import code
感谢您的帮助。
答案 0 :(得分:1)
从Eclipse 4.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()
}
}
答案 1 :(得分:0)
我不完全确定eclipse插件和SWT应用程序之间的区别,但您可以使用buildship build作为参考。 buildSrc实用程序可能有用。
答案 2 :(得分:0)
**免责声明**我之前从未使用过SWT
我将SWT jar放在类似maven的目录结构中(注意我在这里选择了随机组/工件/版本......请适当调整)
myRepo/com/eclipse/swt/swt-core/4.1/swt-core-4.1-windows.jar
myRepo/com/eclipse/swt/swt-core/4.1/swt-core-4.1-linux.jar
myRepo/com/eclipse/swt/swt-utils/4.1/swt-utils-4.1-windows.jar
myRepo/com/eclipse/swt/swt-utils/4.1/swt-utils-4.1-linux.jar
您可以在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存储库中可用,则应使用该jar而不是本地文件夹。
答案 3 :(得分:0)
要完成@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()
}
}