使用Gradle,这是一个非常常见的jlink脚本:
plugins {
id 'application'
id "org.beryx.jlink" version "2.16.3"
}
jlink {
options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
launcher {
name = 'helloFX'
}
}由于我不知道的原因,IntelliJ总是给我警告options
对“选项”的访问权限超过其访问权限。无法为最终字段“选项”分配值。
以及对['--strip-debug', '--compress', ... ]的警告
无法为类“ListProperty”应用默认构造函数。
我不知道是什么引起的。这在很大程度上是来自胶子的javafx帮助的复制粘贴,尽管我的项目是多模块。我不明白为什么这会改变什么。胶子剧本里的其他东西都很好用。jlink甚至创建了一个名为“helloFX”的启动程序。我不知道如何检查是否有任何选项有效。我可以想象他们不是。
发布于 2020-08-21 19:57:24
这似乎是在警告jlink.options是最终的,而options == []格式实际上是一个隐式构造函数。这是一个问题,因为在创建jlink扩展时已经创建了这些选项。
或者,似乎是这样,但是这可能是IDEA对自定义插件的分级支持中的一个错误。
但是,既然它已经创建了,我们可以使用setter作为解决方案吗?
options.set([ '--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages' ])这似乎可以删除IDE中的警告。还有一个公开的addOptions方法,所以我们可能也可以这样做:
addOptions('--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages')后一种便利似乎与options.addAll()相同,但需要进行一些正常检查。在我看来,似乎更多的是Groovy。
https://stackoverflow.com/questions/58843258
复制相似问题