小编dos*_*ant的帖子

在 gradle 构建中自定义启动脚本的位置

我刚开始尝试打包我的一个小项目。在构建我的发行包时,结构如下:

my-project.zip
|
+- my-project
   |
   +- bin (containing start scripts)
   +- lib
   +- xyz (folders from src/dist)
Run Code Online (Sandbox Code Playgroud)

我想要实现的是将启动脚本放在项目根文件夹而不是子bin文件夹中(我知道这是某种约定,但我也喜欢从应用程序文件夹中启动我的应用程序):

my-project.zip
|
+- my-project
   |
   +- lib
   +- xyz (folders from src/dist)
   +- my-project.bat
   +- my-project.sh
Run Code Online (Sandbox Code Playgroud)

这可能吗?

我尝试过设置tasks.startScripts.outputDir但没有成功(脚本已从发行包中完全删除)。

更新

除了 lu.koerfer 的回答之外,我还必须修改启动脚本以考虑更改后的 APP_HOME:

startScripts {
    startScripts.applicationName = artefactsBaseName
    doLast {
        def windowsScriptFile = file getWindowsScript()
        def unixScriptFile = file getUnixScript()
        windowsScriptFile.text = windowsScriptFile.text.replace('set APP_HOME=%DIRNAME%..', 'set APP_HOME=%DIRNAME%')
        unixScriptFile.text = unixScriptFile.text.replace('cd "`dirname \"$PRG\"`/.." >/dev/null', 'cd "`dirname \"$PRG\"`" >/dev/null')
    } …
Run Code Online (Sandbox Code Playgroud)

java gradle

5
推荐指数
1
解决办法
1726
查看次数

使用 Vaadin 13 中应用的当前过滤器和排序从网格中获取所有项目

我正在尝试从网格中导出所有项目。检索到的列表应遵循所有应用的过滤器和排序。ListDataProvider如果重要的话我正在使用。

建议的解决方案包括:

  1. 使用ListDataProvider.getItems()或grid.getDataProvider().fetch(new Query<>()).collect(Collectors.toList())(此处)
  2. 使用grid.getDataCommunicator().fetchItemsWithRange(0,grid.getDataCommunicator().getDataProviderSize())(此处和此处)
  3. 使用grid.getDataCommunicator().fetchFromProvider(..)(此处)

缺点:

  1. 这些项目未排序/过滤。
  2. Vaadin 8 的解决方案,Vaadin 13 中没有的方法。
  3. 提供的方法受保护,因此无法调用。

如何通过应用过滤器和排序来实际获取网格中的所有项目?

java vaadin

4
推荐指数
1
解决办法
1308
查看次数

标签 统计

java ×2

gradle ×1

vaadin ×1