读书人

基于Karaf的项目离线封装与发布

发布时间: 2013-12-06 17:56:44 作者: rapoo

基于Karaf的项目离线打包与发布
mvn-uri := 'mvn:' [ repository-url '!' ] group-id '/' artifact-id [ '/' [version] [ '/' [type] [ '/' classifier ] ] ] ]repository-url := < rfc2396 uri > ; an url that points to a maven 2 repositorygroup-id := < maven groupId > ; group id of maven artifactartifact-id := < maven artifactId > ; artifact id of maven artifactversion := < maven version > | 'LATEST' | range ; version of maven artifactrange := ( '[' | '(' ) version ',' version ( ')' | ']' )type := < maven type> ; type of maven artifactclassifier := < maven classifier> ; maven artifact classifier

假设项目需要依赖Pax Web的service-0.2.0-SNAPSHOT.jar,对应的Mvn协议示例如下:

?

mvn:org.ops4j.pax.web.bundles/service
mvn:org.ops4j.pax.web.bundles/service/LATEST
mvn:org.ops4j.pax.web.bundles/service/0.2.0-SNAPSHOT
mvn:http://repository.ops4j.org/maven2!org.ops4j.pax.web.bundles/service/0.2.0

mvn:file://c:/localRepo!org.ops4j.pax.web.bundles/service/0.2.0 - 从目录中加载

mvn:org.ops4j.pax.web/pax-web-features/3.0.4-SNAPSHOT/xml/features --标识pax-web-features-3.0.4-SNAPSHOT-features.xml构件

协议要点

1)如果版本(version)未指定,将使用默认值“LATEST”,并从可用的Maven元数据(metadata)中解析最新的版本,maven metadata的示例如下:

?

<?xml version="1.0" encoding="UTF-8"?><metadata modelVersion="1.1.0">  <groupId>org.ops4j.pax.web</groupId>  <artifactId>pax-web-features</artifactId>  <version>3.0.4-SNAPSHOT</version>  <versioning>    <snapshot>      <timestamp>20131113.170334</timestamp>      <buildNumber>2</buildNumber>    </snapshot>    <lastUpdated>20131113170334</lastUpdated>    <snapshotVersions>      <snapshotVersion>        <extension>pom</extension>        <value>3.0.4-20131113.170334-2</value>        <updated>20131113170334</updated>      </snapshotVersion>      <snapshotVersion>        <classifier>features</classifier>        <extension>xml</extension>        <value>3.0.4-20131113.170334-2</value>        <updated>20131113170334</updated>      </snapshotVersion>      <snapshotVersion>        <classifier>jettyconfig</classifier>        <extension>xml</extension>        <value>3.0.4-20131113.170334-2</value>        <updated>20131113170334</updated>      </snapshotVersion>    </snapshotVersions>  </versioning></metadata>

?

?

2)如果version是SNAPSHOT版本,则采用与maven一致的策略来解析SNAPSHOT版本;

3)如果type未指定,默认值为JAR;

4)如果指定了一个type但没有指定version,则必须为version留有占位即:mvn:groups/artifact//type

5)Pax URL从0.3.0版本开始支持类别Classifier,如果类别classifier未指定,则不启用类别;

6)如果指定了类别,但没有指定版本version或类型type,则必须未版本和(或)类型留有占位,即:

mvn:groups/artifact///classifier

?或?

mvn:groups/artifact/version//classifier

?或?

mvn:groups/artifact//type/classifier

?

版本范围

从0.2.0版本开始,Pax URL Mvn支持版本范围,示例如下

读书人网 >开源软件

热点推荐