본문 바로가기

반응형
Notice
Recent Posts
Link
Calendar
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Total
Today
관리 메뉴

정적 리소스 webjar 형식으로 만들기 본문

Java

정적 리소스 webjar 형식으로 만들기

BinaryNumber 2022. 3. 2. 17:55
반응형

Webjar이란?

  • jQuery이나 Bootstrap 같은 클라이언트 사이트의 라이브러리를 jar로 하여, Java 라이브러리와 같은 요령으로 Maven과 Gradle에 따라 관리 할 수 있도록 한 서비스.
    WebJars - Web Libraries in Jars
  • 팀내에서 쓰는 유료 Third-party Library나 기타 정적 라이브러리들도 Maven으로 관리하며, 사설 리파지토리를 통해 배포하기 위해 Webjar 형태로 생성
  • 자바소스와 정적리소스를 분리하고자 함

Webjar 프로젝트 생성 및 리소스 위치 시키기

POM 설정하기

생성한 Project 의 pom.xml 에 라이브러리 정보를 기입한다. (이 정보들은 사용하려는 프로젝트에서 의존성을 걸어주는 정보로 활용된다.)

<!-- 리소스들이 위치할 경로 설정 -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.8</version>
    <executions>
        <execution>
            <phase>process-resources</phase>
            <goals><goal>run</goal></goals>
            <configuration>
                <target>
                    <move todir="${destDir}">
			<fileset dir="${project.build.outputDirectory}" 
				includes="*.html, css/, font/, html/, img/, js/, templates/"></fileset>                               	
                    </move>
                </target>
            </configuration>
        </execution>
    </executions>
</plugin>

<!-- 압축 -->
<plugin>
    <groupId>com.googlecode.todomap</groupId>
    <artifactId>maven-jettygzip-plugin</artifactId>
    <version>0.0.4</version>
    <configuration>
        <webappDirectory>target/classes</webappDirectory>
        <outputDirectory>target/classes</outputDirectory>
    </configuration>
    <executions>
        <execution>
            <phase>prepare-package</phase>
            <goals>
                <goal>process</goal>
            </goals>
        </execution>
    </executions>
</plugin>

사용하려는 프로젝트에 의존성 걸어주기

<!-- 기존에 존재하는 Webjar -->
<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>1.11.1</version>
</dependency>
<!-- 위에서 만든 Webjar -->
<dependency>
   <groupId>com.test.webjars</groupId>
   <artifactId>bo-ui</artifactId>
   <version>${webjar.version}</version>
</dependency>

반응형
Comments