Update 59.8. Repackage with custom Gradle configuration.md

master
qibaoguang 2015-05-31 22:22:14 +08:00
parent beb68b069e
commit b8f6e51b67
1 changed files with 4 additions and 4 deletions

View File

@ -1,8 +1,8 @@
### 59.8. 使用Gradle自定义配置进行Repackage ### 59.8. 使用Gradle自定义配置进行Repackage
有时候不打包解析自`compile``runtime``provided`作用域的默认依赖可能更合适些。如果创建的可执行jar被原样运行你需要将所有的依赖内嵌进该jar中然而如果目的是explode一个jar文件并手动运行main类你可能在`CLASSPATH`下已经有一些可用的库了。在这种情况下你可以使用不同的依赖集重新打包repackage你的jar。 有时候不打包解析自compileruntime和provided作用域的默认依赖可能更合适些。如果创建的可执行jar被原样运行你需要将所有的依赖内嵌进该jar中然而如果目的是explode一个jar文件并手动运行main类你可能在CLASSPATH下已经有一些可用的库了。在这种情况下你可以使用不同的依赖集重新打包repackage你的jar。
使用自定义的配置将自动禁用来自`compile``runtime``provided`作用域的依赖解析。自定义配置即可以定义为全局的(处于`springBoot`部分内),也可以定义为任务级的。 使用自定义的配置将自动禁用来自compileruntime和provided作用域的依赖解析。自定义配置即可以定义为全局的处于springBoot部分内也可以定义为任务级的。
```gradle ```gradle
task clientJar(type: Jar) { task clientJar(type: Jar) {
appendix = 'client' appendix = 'client'
@ -15,7 +15,7 @@ task clientBoot(type: BootRepackage, dependsOn: clientJar) {
customConfiguration = "mycustomconfiguration" customConfiguration = "mycustomconfiguration"
} }
``` ```
在以上示例中,我们创建了一个新的`clientJar` Jar任务从你编译后的源中打包一个自定义文件集。然后我们创建一个新的`clientBoot` BootRepackage任务并让它使用`clientJar`任务和`mycustomconfiguration` 在以上示例中我们创建了一个新的clientJar Jar任务从你编译后的源中打包一个自定义文件集。然后我们创建一个新的clientBoot BootRepackage任务并让它使用clientJar任务和mycustomconfiguration。
```gradle ```gradle
configurations { configurations {
mycustomconfiguration.exclude group: 'log4j' mycustomconfiguration.exclude group: 'log4j'
@ -25,4 +25,4 @@ dependencies {
mycustomconfiguration configurations.runtime mycustomconfiguration configurations.runtime
} }
``` ```
`BootRepackage`中引用的配置是一个正常的[Gradle配置](http://www.gradle.org/docs/current/dsl/org.gradle.api.artifacts.Configuration.html)。在上面的示例中,我们创建了一个新的名叫`mycustomconfiguration`的配置,指示它来自一个`runtime`,并排除对`log4j`的依赖。如果`clientBoot`任务被执行重新打包的jar将含有所有来自`runtime`作用域的依赖,除了`log4j` jars。 在BootRepackage中引用的配置是一个正常的[Gradle配置](http://www.gradle.org/docs/current/dsl/org.gradle.api.artifacts.Configuration.html)。在上面的示例中我们创建了一个新的名叫mycustomconfiguration的配置指示它来自一个runtime并排除对log4j的依赖。如果clientBoot任务被执行重新打包的jar将含有所有来自runtime作用域的依赖除了log4j jars。