当前位置: 首页 > 知识库问答 >
问题:

分级多应用程序WAR生成文件拆分为单独包含的文件-“def”中断它

容寒
2023-03-14

Gradle build用于8个应用程序。

错误显示“def”重用不起作用(当所有的东西都放在一个巨大的build.gradle文件中时就很好了):

原因:groovy.lang.MissingPropertyException:没有此类属性:类:org.gradle.api.internal.file.copy.SingleParentCopySpec的withSubsystemFiles

如何解决?(或者...这是一个可怕的构建设计吗?也可以选择其他的方式。)

//etc....

if ("foo".equals(  project.getProperty('application')  )) {
    apply from: "${rootDir}/gradle/foo_application.gradle"
}

if ("bar".equals(  project.getProperty('application')  )) {
    apply from: "${rootDir}/gradle/bar_application.gradle"
}

//etc... lots more applications to build
apply from: "${rootDir}/gradle/include_def.gradle"

task fooApplicationWar(type: War) {  
    from "website/application_foo"

    webInf{
        with withSubsystemFiles
        with withSpecialResources
        with withServiceContext

        // then many   'from'   that are __unique__ to fooApplicationWar                
    }
    // etc...
}

文件:/gradle/bar_application.gradle

apply from: "${rootDir}/gradle/include_def.gradle"

task barApplicationWar(type: War) {  
    from "website/application_bar"

    webInf{
        with withSubsystemFiles
        with withSpecialResources
        with withServiceContext

        // then many   'from'   that are __unique__ to barApplicationWar                
    }
    // etc...
}

文件:/gradle/include_def.gradle

def withSubsystemFiles = copySpec {
    //-- Copy SubsystemFiles
}
def withSpecialResources = copySpec {
    //-- Copy SpecialResources
}
def withServiceContext = copySpec {
    //-- Copy ServiceContext
}
// etc... many many other 'def' that are common, shared by all application builds

共有1个答案

毋举
2023-03-14

include_def.gradle中,定义您的copySpec,如下所示:

ext.withSubsystemFiles = copySpec {
    //-- Copy SubsystemFiles
}
ext.withSpecialResources = copySpec {
    //-- Copy SpecialResources
}
ext.withServiceContext = copySpec {
    //-- Copy ServiceContext
}

如果要在项目中定义额外的属性,则必须使用ExtraPropertiesExtension

 类似资料:
  • 问题内容: 我有一个很大的JSON文件,它是对象的对象,我想在对象键之后将其拆分成单独的文件名。是否可以使用jq或任何其他现成的工具来实现此目的? 原始JSON格式如下 鉴于此输入,我想生成文件item1.json,item2.json等。 问题答案: 这应该给您一个开始: 或者当您坚持使用一些较卑鄙的语法时,似乎有些人更喜欢:

  • 我有一个多模块Maven projet,我想构建一个包含所有要在生产服务器上交付的文件的zip文件,这意味着一个war文件和一堆shell脚本。 这里是我父母pom的一些摘录。xml: war文件在eloi web项目中生成。所以我有一个问题,因为父母是pom。xml是首先执行的,所以我实际上得到了我的zip文件,但是在构建之前,使用了war文件的旧版本,如果我先清理,它就会崩溃。我不知道如何解决

  • 问题内容: 我正在使用OpenSSL,并且需要健全的默认CA列表。我使用的是cURL捆绑提供的 Mozilla的受信任CA列表。但是,我需要拆分这组CA证书,因为OpenSSL文档说: 如果CApath不为NULL,则它指向包含PEM格式的CA证书的目录。每个文件包含一个CA证书。通过CA使用者名称哈希值查找文件,因此必须可用。 例如,直接使用文件可以正常工作: 但是指定包含文件的目录不起作用:

  • 问题内容: 我在理解如何将Flask应用程序拆分为多个文件时遇到麻烦。 我正在创建一个Web服务,并且想将api拆分为不同的文件(AccountAPI.py,UploadAPI.py等),只是我没有一个巨大的python文件。 我读过你可以使用“蓝图”来做到这一点,但我不确定这条路线对我来说是正确的。 最终,我想运行一个Main python文件,并包含其他文件,以便在运行时将它们视为一个大文件。

  • 问题内容: 有什么方法可以将.tfrecords文件直接拆分为多个.tfrecords文件,而无需回写每个Dataset示例? 问题答案: 您可以使用如下函数: 例如,要将文件分成100条记录,您可以执行以下操作: 这将创建多个较小的记录文件,等等。

  • 问题内容: 我有从mongodb导出的json文件,如下所示: 大约有30000行,我想将每一行拆分成自己的文件。 (我正在尝试将我的数据转移到榻榻米群集上) 我尝试这样做: 但是我发现它似乎减少了行的负载,而当我期望30000个奇数时,运行此命令的输出仅给了我50个奇数文件! 有没有一种逻辑方法可以使此操作不使用任何适合的方法删除任何数据? 问题答案: 假设您不在乎确切的文件名,如果要将输入拆分