2 zjl3576 zjl3576 于 2016.03.23 17:11 提问

关于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
zjl3576   2016.03.23 17:20
已采纳

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!