Ответ
Секция build (или её эквивалент) в файле сборки определяет процесс трансформации исходного кода в артефакт. В ней конфигурируют плагины, задачи и параметры, которые управляют компиляцией, тестированием, упаковкой и другими этапами жизненного цикла.
В Maven (pom.xml) секция <build> содержит:
<build>
<!-- 1. Плагины -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<!-- Параметры компилятора -->
<source>17</source>
<target>17</target>
<compilerArgs>--enable-preview</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.7.0</version>
</plugin>
</plugins>
<!-- 2. Фильтрация ресурсов и пути -->
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
В Gradle (build.gradle или build.gradle.kts) эквивалентная конфигурация задается в блоке plugins и tasks:
plugins {
id 'java'
id 'org.springframework.boot' version '2.7.0'
}
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
tasks.withType(JavaCompile) {
options.compilerArgs += '--enable-preview'
}
Типичные элементы конфигурации build:
- Плагины/задачи: Компилятор, упаковщик (jar, war), запуск тестов, статический анализ кода.
- Параметры компиляции: Версия Java, аргументы компилятора.
- Обработка ресурсов: Копирование и фильтрация файлов (например,
.properties). - Кастомизация артефакта: Имя выходного JAR, манифест.