Gradle在编译之前重命名包

时间:2015-11-25 13:05:27

标签: java gradle package rename

我有eclipse的java项目。 Gradle脚本:

apply plugin: 'java'
jar {
    manifest {
        attributes 'Title': 'xxx' 
    }
}
repositories {
    mavenCentral()
}
dependencies {
    compile fileTree(dir: 'lib', include: '**/*.jar')
}
def myPackage = 'mypackage'
sourceSets {
    main {
        java.srcDirs = ['src']
    }
}

项目文件结构

src
    com.company.core
                    ....classes
    com.company.impl
                    ....classes

在jar文件中需要文件结构

com.company.core
                ...classes
com.mypackage.impl
                ...classes

需要重命名包 公司 - > jar文件中的mypackge

这不是安卓。

请帮助。

UPD

谢谢Lance Java。 它为我工作。

但是有一个问题。来自libs(google-play-services.jar,android.jar)的所有类都进入jar ...我需要只在src文件夹中的类...我可以通过所有包排除类,但我认为这是不好的溶液...

是否有另一种方式与shadowJar?

我的依赖项:

dependencies {
    compile files('libs/android.jar')
    compile files('libs/google-play-services.jar')
}

1 个答案:

答案 0 :(得分:5)

可以使用shadow插件

完成此操作

请参阅relocating packages