zjl3576 2016-03-23 09:11 采纳率: 0%
浏览 1840
已采纳

关于gradel打包jar包的问题

有没有高手是用gradel打包jar包的呢
我build完之后可以运行,但出现在两个问题。
第一个就是resources目录下的配置文件给打包进jar包里了。
第二个是class文件给打包了双份,一份的路径是com.test.*,另一份是main.com.test.*
里面的class文件是一样的,这让我百思不得其解。我试过自己用脚本打包,却读取不到配置文件而运行不了。由于项目需要,配置文件是必须放在单独一个目录下的。请高手帮我看看。
附上jar包解压截图:
jar包解压截图

以下是gradle脚本

 //依赖编译,然后打包JAR
task build_jar(type:Jar, dependsOn: [compileJava, processResources, classes]) {
    manifest {
        attributes 'Main-Class': 'com.mmo.TestPaoding'

        FileTree tree = fileTree(dir: 'lib')
        tree.include '**/*.jar'
        def  classPath = '';
        tree.each {File file ->
            classPath += 'libs/' + file.name + ' '
        }
        tree = fileTree(dir: '/src/main/resources')
        tree.each {File file ->
            classPath += 'resources/' + file.name + ' '
        }

        attributes 'Class-Path': classPath 
    }
    from 'build/classes/main'
    destinationDir = file('build/libs')
}

//清除上次的编译过的文件
task clean_dir(type:Delete){
    delete 'build',release_dir
}

task copyResources(type: Copy) {
    from('build/resources/main')
    into release_resources_dir
}

task copyDepences(type: Copy) {
    from configurations.runtime
    into release_lib_dir
}

task release(type: Copy, dependsOn:[build_jar, copyResources, copyDepences]) {
    from('build/libs') {
        include '*.jar'
    }
    into release_dir
}
  • 写回答

1条回答 默认 最新

  • zjl3576 2016-03-23 09:20
    关注

    当然,如果我在代码里将配置文件的路径改为 config/config.xml,那么发版后也是可以说的,而且配置文件不需要打包在jar包里。
    但这里会出现的问题时,调试时,我需要将路径改成config.xml,发版时又改为config/config.xml
    请问高手有没有方法可以解决呢?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料