Maven으로 Java 또는 Scala 처리기 코드 패키징하기

Maven을 사용하여 코드를 빌드하고 패키지하는 경우 Maven Assembly Plugin 을 사용하면 모든 종속성을 포함하는 JAR 파일을 만들 수 있습니다.

JAR 파일이 있으면 이를 Snowflake 스테이지에 업로드한 다음, 함수나 프로시저를 만들 때 IMPORTS 문에서 해당 파일을 참조할 수 있습니다. JAR 파일 업로드에 대한 자세한 내용은 코드에 종속성을 사용할 수 있도록 만들기 섹션을 참조하십시오. 코드를 인라인 상태로 둘지 스테이지에 둘지 선택하는 방법에 대한 자세한 내용은 처리기 코드를 인라인 또는 스테이지에 유지하기 섹션을 참조하십시오.

처리기 코드로 JAR 파일을 만들려면 다음 단계에 따르십시오.

  1. 프로젝트 디렉터리(예: hello-snowpark/)에서 assembly/ 라는 하위 디렉터리를 만듭니다.

  2. 해당 디렉터리에서, JAR 파일에 종속성을 포함하도록 지정하는 어셈블리 설명자 파일 을 만듭니다.

    예는 jar-with-dependencies 를 참조하십시오.

  3. 프로젝트에 Snowpark 라이브러리가 필요한 경우 라이브러리가 Snowflake에 이미 포함되어 있으므로 출력 아카이브에서 JAR 파일을 제외하십시오.

    어셈블리 설명자에서, JAR 파일에서 Snowpark 라이브러리를 제외하는 <dependencySet> 요소를 추가합니다.

    예:

    <assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd">
      <id>jar-with-dependencies</id>
      <formats>
         <format>jar</format>
      </formats>
      <includeBaseDirectory>false</includeBaseDirectory>
      <dependencySets>
        <dependencySet>
          <outputDirectory>/</outputDirectory>
          <useProjectArtifact>false</useProjectArtifact>
          <unpack>true</unpack>
          <scope>provided</scope>
          <excludes>
            <exclude>com.snowflake:snowpark</exclude>
          </excludes>
        </dependencySet>
      </dependencySets>
    </assembly>
    
    Copy

    어셈블리 설명자의 요소에 대한 자세한 내용은 어셈블리 설명자 형식 을 참조하십시오.

  4. pom.xml 파일의 <project> » <build> » <plugins> 아래에 Maven Assembly Plugin용 <plugin> 요소를 추가합니다.

    또한, <configuration> » <descriptors> 아래에 이전 단계에서 만든 어셈블리 설명자 파일을 가리키는 <descriptor> 를 추가합니다.

    예:

    <project>
      [...]
      <build>
        [...]
        <plugins>
          <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.3.0</version>
            <configuration>
              <descriptors>
                <descriptor>src/assembly/jar-with-dependencies.xml</descriptor>
              </descriptors>
            </configuration>
            [...]
          </plugin>
          [...]
        </plugins>
        [...]
      </build>
      [...]
    </project>
    
    Copy