빌드할 때 adoc 파일 html로 렌더링 하는 방법

유기훈·2025년 1월 26일

Maven

1. pom.xml 파일에 plugin 추가

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.4.1</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>spring</groupId>
	<artifactId>mywebtester</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>web.tester</name>
	<description>Demo project for Spring Boot</description>
	<url/>
	<licenses>
		<license/>
	</licenses>
	<developers>
		<developer/>
	</developers>
	<scm>
		<connection/>
		<developerConnection/>
		<tag/>
		<url/>
	</scm>
	<properties>
		<java.version>21</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.asciidoctor</groupId>
			<artifactId>asciidoctor-maven-plugin</artifactId>
			<version>3.1.1</version>
		</dependency>
      
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
          <!-- adoc -> html 렌더링 pugin 추가 -->
			<plugin>
				<groupId>org.asciidoctor</groupId>
				<artifactId>asciidoctor-maven-plugin</artifactId>
				<version>3.1.1</version>
				<executions>
					<execution>
						<id>generate-html</id>
						<goals>
							<goal>process-asciidoc</goal>
						</goals>
						<phase>prepare-package</phase> <!-- 빌드 과정 중 어느 단계에서 실행할지 선택 -->
					</execution>
				</executions>
				<configuration>
					<sourceDirectory>src/docs/asciidoc</sourceDirectory>
					<outputDirectory>${project.build.directory}/generated-docs</outputDirectory>
				</configuration>
			</plugin>
          <!-- adoc -> html 렌더링 pugin 추가 -->
		</plugins>
	</build>

</project>

2. adoc 파일 작성

pom.xml에 설정한 경로에 adoc 파일 작성

3. 빌드 후 파일 확인

mvn clean package 입력 후 target 경로 확인

Gradle

1. build.gradle 파일에 plugin 추가

plugins {
	id 'java'
	id 'org.springframework.boot' version '3.4.2'
	id 'io.spring.dependency-management' version '1.1.7'
	id 'org.asciidoctor.jvm.convert' version '3.3.2'
}

group = 'com.test'
version = '0.0.1-SNAPSHOT'

java {
	toolchain {
		languageVersion = JavaLanguageVersion.of(21)
	}
}

repositories {
	mavenCentral()
}

ext {
	set('snippetsDir', file("build/generated-snippets"))
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc'
	testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

tasks.named('test') {
	outputs.dir snippetsDir
	useJUnitPlatform()
}

tasks.named('asciidoctor') {
	inputs.dir snippetsDir
	dependsOn test
}

asciidoctor {
	sources {
		include '**/*.adoc'
	}
	outputDir = file("${buildDir}/generated-docs")
}

tasks.build {
	dependsOn asciidoctor // build 작업 전에 asciidoctor 실행
}

2. adoc 파일 작성

pom.xml에 설정한 경로에 adoc 파일 작성

3. 빌드 후 파일 확인

./gradlew clean build 입력 후 build 경로 확인

profile
개발 블로그

0개의 댓글