66 lines
2.3 KiB
Markdown
66 lines
2.3 KiB
Markdown
### 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']
|
||
}
|
||
```
|