Red Hat Fuse/A-MQ - 小技巧,开发FUSE专案时的Maven的pom.xml中
2014-06-17 13:42
531 查看
红帽JBoss的FUSE是开源的企业服务总线(ESB) ,他最大的好處就是可以讓你擁有彈性的安裝大小,讓你可以整合跨越不同資料中心的服務語系統。在FUSE里面,还有Apache的Camel 提供一個功能齊全,容易使用和可以直接使用的框架,所以可以更快速的開發整合專案。Fuse 6.1所提供的元件在这里!
在开发的A-MQ的程式或是Camel的整合系统的时候,我们都会用的Maven来管理程式。 可是常常因為不同版本的關聯,造成程式間的衝突,這種問題超級羅生門,又難抓。介紹幾個小技巧,讓你可以更簡單的管理你的pom.xml,让你可以专注在开发上,不要为了设定一个头两个大。
不管你是透过原型 或是乾脆起一個空白的maven專案,可以透過一些微幅的調整讓你管理起來更簡單,所以,第一件要解決得事情就是一堆的Artifact的关联版本,要一个一个的查FUSE6 .1或是AMQ6.1用到哪些实在是有够麻烦的,所以我们只要在pom.xml文件里面增加“dependencyManagement”这个标签就会自动地去管理,还有抓取我们需要的版本,是不是很棒!
<dependencyManagement> <dependencies> <dependency> <groupId>org.jboss.fuse.bom</groupId> <artifactId>jboss-fuse-parent</artifactId> <version>${jboss.fuse.bom.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
我们把FUSE版本独立出来,以后你可以随着版本跟着变更,这次是6.1,所以请在属性的标签里面标明6.1.0.redhat-379
<properties> <jboss.fuse.bom.version>6.1.0.redhat-379</jboss.fuse.bom.version> </properties>这样我们在关联性上面,就不需要加版本啰!
例如:
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-core</artifactId> </dependency>
第二个部分就是要如何让你在部署的时候可以更轻松,因为Fabric的部署是可以直接跟maven联结的,所以,先设定登入Fabric的帐号密码,这个就必须设在你的maven的的settings.xml里面拉!路径 ~/.m/setting.xml,你可以同時設定多組密碼,預設值是fabric8.upload.repo,但是如果你同時在開發多個專案,可能也會用到多個吧~
<servers> <server> <id>fabric8.upload.repo</id> <username>Username4Default</username> <password>Password4Default</password> </server> <server> <id>fabric8.demo.repo</id> <username>Username4DEMO</username> <password>Password4DEMO</password> </server> </servers>
把下面的Maven插件加上设定放到你的pom.xml文件里面,
<plugins> <plugin> <groupId>io.fabric8</groupId> <artifactId>fabric8-maven-plugin</artifactId> <configuration> <profile>${fabric8.profile}</profile> <serverId>${fabric8. serverId}</serverId> </configuration> </plugin> </plugins>
把你想要安装在Frabric上的配置文件名字放在fabric8.profile下,然后把你想要更新的服务器ID(对应到你设在Setting.xml的的ID),放在fabric8.serverId之下。
<properties> <fabric8.profile>blogDemo</fabric8.profile> <fabric8.serverId>fabric8.projectA.repo</fabric8.serverId> </properties>
因为我们要部署上去的是一个Karaf的OSGI执行容器,确定我们的专案是包成一个包,请加入以下的插件。 (因为有些旧的原型没帮你加,有时候要自己加上去。)这个插件就会帮你自动产生一个包要用到的清单的文件档案。
对了,不要忘记把你取的包名字放在包-SymbolicName之下,跟把你专案用到定义的java的目录放到私营包装标签之下喔。
<plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>2.3.7</version> <extensions>true</extensions> <configuration> <instructions> <Bundle-SymbolicName>YourBundleName</Bundle-SymbolicName> <Private-Package>YourJavaSourcePackage</Private-Package> <Import-Package></Import-Package> </instructions> </configuration> </plugin>
有一个我没有特别要说的是行家的程式库路径设定,基本上,有很多个repo你可以选择,而且如果是我的话,我会把它放在Setting.xml的里面。但是放在pom.xml中 也沒什么不对,所以你可以自己选你要放哪里,还有连到哪个你喜欢的程式库。
下面提供一个范例给大家参考啰!
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelversion>4.0.0</modelversion> <groupid>org.blogdemo</groupid> <artifactid>tipdemo</artifactid> <packaging>bundle</packaging> <version>1.0.0-SNAPSHOT</version> <name>Christina's Blog Demo</name> <properties> <project .build.sourceencoding="">UTF-8</project> <project .reporting.outputencoding="">UTF-8</project> <jboss .fuse.bom.version="">6.1.0.redhat-379</jboss> <fabric8 .profile="">blogDemo</fabric8> <fabric8 .serverid="">fabric8.demo.repo</fabric8> </properties> <dependencymanagement> <dependencies> <dependency> <groupid>org.jboss.fuse.bom</groupid> <artifactid>jboss-fuse-parent</artifactid> <version>${jboss.fuse.bom.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencymanagement> <dependencies> <dependency> <groupid>org.apache.camel</groupid> <artifactid>camel-core</artifactid> </dependency> <dependency> <groupid>org.apache.camel</groupid> <artifactid>camel-spring</artifactid> </dependency> <!-- logging --> <dependency> <groupid>org.slf4j</groupid> <artifactid>slf4j-api</artifactid> </dependency> <dependency> <groupid>org.slf4j</groupid> <artifactid>slf4j-log4j12</artifactid> </dependency> <dependency> <groupid>log4j</groupid> <artifactid>log4j</artifactid> </dependency> <!-- testing --> <dependency> <groupid>org.apache.camel</groupid> <artifactid>camel-test-spring</artifactid> <scope>test</scope> </dependency> </dependencies> <build> <defaultgoal>install</defaultgoal> <plugins> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-compiler-plugin</artifactid> <version>2.5.1</version> <configuration> <source>1.6 <target>1.6</target> </configuration> </plugin> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-resources-plugin</artifactid> <version>2.6</version> <configuration> <encoding>UTF-8</encoding> </configuration> </plugin> <!-- allows the route to be ran via 'mvn camel:run' --> <plugin> <groupid>org.apache.camel</groupid> <artifactid>camel-maven-plugin</artifactid> <version>2.12.0.redhat-610379</version> </plugin> <!-- to generate the MANIFEST-FILE of the bundle --> <plugin> <groupid>org.apache.felix</groupid> <artifactid>maven-bundle-plugin</artifactid> <version>2.3.7</version> <extensions>true</extensions> <configuration> <instructions> <bundle-symbolicname>tipdemo</bundle-symbolicname> <private-package>org.blogdemo.tipdemo.*</private-package> <import-package></import-package> </instructions> </configuration> </plugin> <!-- Fabric Deployment Plugin --> <plugin> <groupid>io.fabric8</groupid> <artifactid>fabric8-maven-plugin</artifactid> <!-- <version>1.0.0.redhat-355</version>--> <configuration> <profile>${fabric8.profile}</profile> <serverid>${fabric8. serverId}</serverid> </configuration> </plugin> </plugins> </build> </project>
原始網站: Christina
の J老闆
相关文章推荐
- 【maven】之配置开发,测试,正式环境pom.xml文件
- maven POM.xml 开发配置标签详解
- 阿里云Hadoop开发自动打包上传运行maven的pom.xml
- 【java】Maven项目开发中pom.xml常用配置,不断更新
- Maven 配置篇之 pom.xml
- maven 配置篇 之pom.xml(一)
- Android中的XML解析-DOM的使用与开发技巧(转)
- iPhone开发技巧之网络篇(1)--- 解析XML
- [使用心得]maven2之m2eclipse使用手册之三第一个Simple MavenProject与Pom.xml配置说明
- maven 配置篇 之pom.xml
- maven 配置之pom.xml(3)
- Maven教程初级篇02:pom.xml配置初步
- Maven 配置篇之 pom.xml
- maven 配置篇 之pom.xml
- maven 配置篇 之pom.xml(二)
- Maven教程初级篇02:pom.xml配置初步
- Maven 配置篇之 pom.xml
- Maven pom.xml 文件解析
- NHibernate开发技巧:为hbm.xml配置文件添加智能提示(VS2008)
- 学习笔记之maven2学习总结(2,进阶setting.xml与pom.xml)