5.2. 기존 Maven 프로젝트 수정

5.2.1. 개요

이미 Maven 프로젝트가 있고 OSGi 번들을 생성하도록 수정하려면 다음 단계를 수행합니다.

5.2.2. 패키지 유형을 번들로 변경

프로젝트의 pom.xml 파일에서 패키지 유형을 번들로 변경하여 OSGi 번들을 생성하도록 Maven을 구성합니다. 다음 예와 같이 패키징 요소의 내용을 번들 로 변경합니다.

<project ... >
  ...
  <packaging>bundle</packaging>
  ...
</project>

이 설정의 영향은 Maven 번들 플러그인인 maven-bundle-plugin 을 선택하여 이 프로젝트에 대한 패키징을 수행하는 것입니다. 그러나 이 설정은 POM에 번들 플러그인을 명시적으로 추가할 때까지는 적용되지 않습니다.

5.2.3. POM에 번들 플러그인을 추가합니다.

Maven 번들 플러그인을 추가하려면 다음 샘플 플러그인 요소를 복사하여 프로젝트 pom.xml 파일의 project/build/plugins 섹션에 붙여넣습니다.

<project ... >
  ...
  <build>
    <defaultGoal>install</defaultGoal>
    <plugins>
      ...
    <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>3.3.0</version>
        <extensions>true</extensions>
        <configuration>
          <instructions>
            <Bundle-SymbolicName>${project.groupId}.${project.artifactId}
            </Bundle-SymbolicName>
            <Import-Package>*</Import-Package>
          </instructions>
        </configuration>
      </plugin>
    </plugins>
  </build>
  ...
</project>

여기서 bundle 플러그인은 instructions 요소의 설정으로 구성됩니다.

5.2.4. 번들 플러그인 사용자 정의

Apache CXF용 번들 플러그인 구성에 대한 몇 가지 구체적인 권장 사항은 5.3절. “번들로 웹 서비스 패키징” 에서 참조하십시오.

5.2.5. JDK 컴파일러 버전 사용자 정의

POM 파일에서 JDK 버전을 지정하는 것은 거의 항상 필요합니다. 코드에서 Java 언어의 최신 기능을 사용하는 경우(예: 일반, 정적 가져오기 등) POM에서 JDK 버전을 사용자 지정하지 않은 경우 Maven은 소스 코드를 컴파일하지 못합니다. JAVA_HOMEPATH 환경 변수를 JDK의 올바른 값으로 설정하는 것만으로는 충분하지 않으며 POM 파일도 수정해야 합니다.

POM 파일을 구성하려면 JDK 1.8에 도입된 Java 언어 기능을 허용하도록 다음 maven-compiler-plugin 플러그인을 POM에 추가합니다(아직 없는 경우).

<project ... >
  ...
  <build>
    <defaultGoal>install</defaultGoal>
    <plugins>
      ...
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
  ...
</project>