Update 73.5. Create a non-executable JAR with exclusions.md
parent
2a7fedecc2
commit
a9d257f27c
|
@ -0,0 +1,65 @@
|
|||
### 73.5. 使用排除创建不可执行的JAR
|
||||
|
||||
如果你构建的产物既有可执行的jar和非可执行的jar,那你常常需要为可执行的版本添加额外的配置文件,而这些文件在一个library jar中是不需要的。比如,application.yml配置文件可能需要从非可执行的JAR中排除。
|
||||
|
||||
下面是如何在Maven中实现:
|
||||
```xml
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<configuration>
|
||||
<classifier>exec</classifier>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>exec</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>jar</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<classifier>exec</classifier>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>jar</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<!-- Need this to ensure application.yml is excluded -->
|
||||
<forceCreation>true</forceCreation>
|
||||
<excludes>
|
||||
<exclude>application.yml</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
```
|
||||
在Gradle中,你可以使用标准任务的DSL(领域特定语言)特性创建一个新的JAR存档,然后在bootRepackage任务中使用withJarTask属性添加对它的依赖:
|
||||
```gradle
|
||||
jar {
|
||||
baseName = 'spring-boot-sample-profile'
|
||||
version = '0.0.0'
|
||||
excludes = ['**/application.yml']
|
||||
}
|
||||
|
||||
task('execJar', type:Jar, dependsOn: 'jar') {
|
||||
baseName = 'spring-boot-sample-profile'
|
||||
version = '0.0.0'
|
||||
classifier = 'exec'
|
||||
from sourceSets.main.output
|
||||
}
|
||||
|
||||
bootRepackage {
|
||||
withJarTask = tasks['execJar']
|
||||
}
|
||||
```
|
Loading…
Reference in New Issue