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
    请问高手有没有方法可以解决呢?

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

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划