繁体   English   中英

gradle从所有jar中排除外部资源文件夹

[英]gradle exclude external resource folder from all jars

将gradle 5.4与netbeans项目中外部文件夹的项目依赖项一起使用。

外部文件夹包含只能由该netbeans项目创建的资源,例如图像,xml和自定义对象。 然后,这些外部资产用于创建二进制文件,该文件由该netbeans项目打包到一个单独的jar中。

这些相同的外部资源也将在运行时期间用于gradle项目中的开发。 虽然我需要在gradle项目中进行开发的资源,但是使用task build命令时,由于任何原因,我不需要或不希望它们被包含在任何jar中,因为只需要分发二进制文件即可。

如何从gradle项目中的任何和所有jar文件中排除外部资源,但如何将它们用于classPath,以便我可以运行项目?

一些失败的代码示例。

apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'idea'

sourceSets { 
   main { 
      resources { 
         srcDir '../ExternalResourceFolder/assets' 
      } 
   }   
}

jar {
    exclude('../ExternalResourceFolder/assets/**')
}
dependencies {
    runtimeOnly files('../ExternalResourceFolder/assets') 
}

jar {
    exclude('../ExternalResourceFolder/assets/**')
}
distributions {
    main {
        contents {
            exclude '../ExternalResourceFolder/assets/**'
        }
    }
}

尝试了更多类似添加到classPath和exclude的操作,但是添加它们只会很混乱。 从sourceSet更改为依赖关系只会使问题从“ build / lib”文件夹移至“ build / distributions”文件夹。

最后必须排除每种文件类型。

    sourceSets {
    main {
        resources {
            srcDir '.'
            exclude ('**/*.j3odata','**/*.mesh','**/*.skeleton',\
                    '**/*.mesh.xml','**/*.skeleton.xml','**/*.scene',\
                    '**/*.material','**/*.obj','**/*.mtl','**/*.3ds',\
                    '**/*.dae','**/*.blend','**/*.blend*[0-9]','**/*.bin',\
                    '**/*.gltf')
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM