maven type bundle啥意思
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven type bundle啥意思相关的知识,希望对你有一定的参考价值。
参考技术A 就是用maven配置bundle工程。1.在src\main\resources路径下配置features.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<features xmlns="http://karaf.apache.org/xmlns/features/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.0.0 http://karaf.apache.org/xmlns/features/v1.0.0"
name="esbconsoleRepository">
<repository>mvn:$project.groupId/$project.artifactId/$project.version/xml/features</repository>
<feature name="$project.artifactId" version="$project.version">
<feature version="$camel.version">camel-http</feature>
<feature version="$camel.version">camel-jetty</feature>
<bundle>mvn:$project.groupId/$project.artifactId/$project.version</bundle>
</feature>
</features>
2.pom.xml文件要点
2.1:打包成bundle格式文件
<packaging>bundle</packaging>
2.2:配置构建所需插件
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.7</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>$project.artifactId</Bundle-SymbolicName>
<Bundle-Description>$project.description</Bundle-Description>
<DynamicImport-Package>*</DynamicImport-Package>
<Import-Package>!*</Import-Package>
<!-- <Import-Package>!antlr.*,!gnu.*,!javassist.*,!javax.persistence.*,!javax.xml.rpc*,!junit.*,*</Import-Package> -->
<Export-Package>com.csair.cod.route*;version=$project.version</Export-Package>
<Embed-Dependency>log4j,svc-sample-fuse-lib,jbossall-client,testejb;scope=compile|runtime|system</Embed-Dependency>
</instructions>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
<!-- add the following args -->
<fork>true</fork>
<meminitial>128m</meminitial>
<maxmem>256m</maxmem>
<!-- if it doesn't work, try 768M, it seems that UTF-16 consumes more
memory -->
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>$basedir/target</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>target/features.xml</file>
<type>xml</type>
<classifier>features</classifier>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
maven依赖项中类型“bundle”的含义是啥?
【中文标题】maven依赖项中类型“bundle”的含义是啥?【英文标题】:What is the meaning of type "bundle" in a maven dependency?maven依赖项中类型“bundle”的含义是什么? 【发布时间】:2011-07-20 08:50:32 【问题描述】:“bundle”是什么意思,例如在这个依赖中:
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-core</artifactId>
<version>1.1.2</version>
<type>bundle</type>
<scope>compile</scope>
</dependency>
【问题讨论】:
【参考方案1】:这种工件是一个 OSGi 包,通常使用 maven-bundle-plugin 生成,它是 Apache Felix 的一部分。
插件将模块可用的所有类(模块自己的类、依赖项提供的类、类路径上的其他类)视为一个巨大的集合,然后让您选择这些类的子集捆绑到一个 jar 中。它还创建必要的清单信息以使工件成为 OSGi 包。
因此,您使用此依赖项引入的工件是 jar,但它是通过从更大的类集中选择一个子集构建的 jar,而不仅仅是在 abdera-core 模块中定义的类。
如果您查看the pom for the abdera project,您会看到maven-bundle-plugin
配置,它可以让您了解哪些类已添加到捆绑包中,哪些类已被阻止。
【讨论】:
以上是关于maven type bundle啥意思的主要内容,如果未能解决你的问题,请参考以下文章
如何用maven-bundle-plugin在bundle中嵌入内部JAR包