A.2. Red Hat Fuse OSGi 프로젝트 설정


A.2.1. 개요

OSGi 번들을 빌드하기 위한 Maven 프로젝트는 간단한 단일 수준 프로젝트일 수 있습니다. 하위 프로젝트는 필요하지 않습니다. 그러나 다음을 수행해야 합니다.

  1. 번들 플러그인을 POM에 추가합니다.
  2. Maven에 결과를 OSGi 번들로 패키징하도록 지시합니다.
참고

적절한 설정으로 프로젝트를 설정하는 데 사용할 수 있는 여러 Maven archetypes가 있습니다.

A.2.2. 디렉토리 구조

OSGi 번들을 구성하는 프로젝트는 단일 수준 프로젝트일 수 있습니다. 최상위 POM 파일과 src 폴더만 있으면 됩니다. 모든 Maven 프로젝트에서와 마찬가지로 src/java 폴더에 모든 Java 소스 코드를 배치하고 src/resources 폴더에 비 Java 리소스를 배치합니다.

Java가 아닌 리소스에는 Spring 구성 파일, JBI 엔드포인트 구성 파일 및 WSDL 계약이 포함됩니다.

참고

Apache CXF, Apache Camel 또는 다른 Spring configured Quarkus를 사용하는 Red Hat Fuse OSGi 프로젝트에는 src/resources/META-INF/spring 폴더에 있는 beans.xml 파일도 포함됩니다.

A.2.3. 번들 플러그인 추가

번들 플러그인을 사용하려면 먼저 Apache Felix에 대한 종속성을 추가해야 합니다. 종속성을 추가한 후 번들 플러그인을 POM의 플러그인 부분에 추가할 수 있습니다.

예 A.1. “POM에 OSGi 번들 플러그인 추가” 번들 플러그인을 프로젝트에 추가하는 데 필요한 POM 항목이 표시됩니다.

예 A.1. POM에 OSGi 번들 플러그인 추가

...
<dependencies>
  <dependency>
    <groupId>org.apache.felix</groupId>
    <artifactId>org.osgi.core</artifactId>
    <version>1.0.0</version>
  </dependency>
...
</dependencies>
...
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.felix</groupId>
      <artifactId>maven-bundle-plugin</artifactId>
      <configuration>
        <instructions>
          <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
          <Import-Package>*,org.apache.camel.osgi</Import-Package>
          <Private-Package>org.apache.servicemix.examples.camel</Private-Package>
        </instructions>
      </configuration>
    </plugin>
  </plugins>
</build>
...

예 A.1. “POM에 OSGi 번들 플러그인 추가” 의 항목은 다음을 수행합니다.

Apache Felix에 대한 종속성 추가

번들 플러그인을 프로젝트에 추가

프로젝트의 아티팩트 ID를 번들의 심볼릭 이름으로 사용하도록 플러그인을 구성합니다.

번들 클래스에서 가져온 모든 Java 패키지를 포함하도록 플러그인을 구성합니다. 또한 org.apache.camel.osgi 패키지를 가져옵니다.

나열된 클래스를 번들하도록 플러그인을 구성하지만 내보낸 패키지 목록에 포함하지 마십시오.

참고

프로젝트의 요구 사항을 충족하도록 구성을 편집합니다.

번들 플러그인 구성에 대한 자세한 내용은 A.3절. “번들 플러그인 구성” 을 참조하십시오.

A.2.4. 번들 플러그인 활성화

Maven에서 번들 플러그인을 사용하도록 하려면 프로젝트 결과를 번들로 패키징하도록 지시합니다. POM 파일의 패키징 요소를 번들로 설정하여 이 작업을 수행합니다.

A.2.5. 유용한 Maven archetypes

번들 플러그인을 사용하도록 사전 구성된 프로젝트를 생성하는 데 사용할 수 있는 여러 Maven archetypes가 있습니다.

A.2.6. Spring OSGi archetype

Spring OSGi archetype은 다음과 같이 Spring DM을 사용하여 OSGi 프로젝트를 빌드하기 위한 일반 프로젝트를 생성합니다.

org.springframework.osgi/spring-bundle-osgi-archetype/1.1.2

다음 명령을 사용하여 archetype을 호출합니다.

mvn archetype:generate -DarchetypeGroupId=org.springframework.osgi -DarchetypeArtifactId=spring-osgi-bundle-archetype -DarchetypeVersion=1.1.2 -DgroupId=groupId -DartifactId=artifactId -Dversion=version

A.2.7. Apache CXF 코드 우선 archetype

Apache CXF 코드 우선 archetype은 다음과 같이 Java에서 서비스를 빌드하기 위한 프로젝트를 생성합니다.

org.apache.servicemix.tooling/servicemix-osgi-cxf-code-first-archetype/2010.02.0-fuse-02-00

다음 명령을 사용하여 archetype을 호출합니다.

mvn archetype:generate -DarchetypeGroupId=org.apache.servicemix.tooling -DarchetypeArtifactId=servicemix-osgi-cxf-code-first-archetype -DarchetypeVersion=2010.02.0-fuse-02-00 -DgroupId=groupId -DartifactId=artifactId -Dversion=version

A.2.8. Apache CXF wsdl-first archetype

Apache CXF wsdl 우선 archetype은 다음과 같이 WSDL에서 서비스를 생성하기 위한 프로젝트를 생성합니다.

org.apache.servicemix.tooling/servicemix-osgi-cxf-wsdl-first-archetype/2010.02.0-fuse-02-00

다음 명령을 사용하여 archetype을 호출합니다.

mvn archetype:generate -DarchetypeGroupId=org.apache.servicemix.tooling -DarchetypeArtifactId=servicemix-osgi-cxf-wsdl-first-archetype -DarchetypeVersion=2010.02.0-fuse-02-00 -DgroupId=groupId -DartifactId=artifactId -Dversion=version

A.2.9. Apache Camel archetype

Apache Camel archetype은 다음과 같이 Red Hat Fuse에 배포된 경로를 빌드하기 위한 프로젝트를 생성합니다.

org.apache.servicemix.tooling/servicemix-osgi-camel-archetype/2010.02.0-fuse-02-00

다음 명령을 사용하여 archetype을 호출합니다.

mvn archetype:generate -DarchetypeGroupId=org.apache.servicemix.tooling -DarchetypeArtifactId=servicemix-osgi-camel-archetype -DarchetypeVersion=2010.02.0-fuse-02-00 -DgroupId=groupId -DartifactId=artifactId -Dversion=version
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.