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