Red Hat Fuse/A-MQ - 小技巧,开发FUSE专案时的Maven的pom.xml中
来源:互联网 发布:知乎如何修改问题 编辑:程序博客网 时间:2024/05/21 06:27
红帽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>
对了,不要忘记把你取的包名字放在包-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>
0 0
- Red Hat Fuse/A-MQ - 小技巧,开发FUSE专案时的Maven的pom.xml中
- Red Hat JBoss Fuse - RHTE Fuse and Camel 研討會習作
- 使用 FUSE 开发自己的文件系统
- 使用 FUSE 开发自己的文件系统
- 使用 FUSE 开发自己的文件系统
- 使用 FUSE 开发自己的文件系统
- 使用 FUSE 开发自己的文件系统
- 使用 FUSE 开发自己的文件系统
- 使用FUSE开发自己的文件系统
- 使用 FUSE 开发自己的文件系统
- FUSE---神奇又迷人的开发工具
- 使用 FUSE 开发自己的文件系统
- 使用 FUSE 开发自己的文件系统
- FUSE 程序的编译
- fuse的direct_io
- fuse的作用
- 解答中gvfs-fuse-daemon的疑惑
- fuse
- Dynamic Web Module version 3.0 与JBoss
- 作为一个新人,如何学习嵌入式(韦东山)
- osx上得php redis扩展怎么安装?
- php继承需要注意的细节
- ubuntu14.04安装搜狗输入法注意事项
- Red Hat Fuse/A-MQ - 小技巧,开发FUSE专案时的Maven的pom.xml中
- IdeaVim插件施用技巧
- leetcode - Remove Duplicates from Sorted Array
- python缺包笔记
- mysql加密
- 怎样在Oracle 9i中正确的转换时区
- php中的访问修饰符知识点
- VS2010下编译sqlite3
- Write operations are not allowed in read-only mode (FlushMode.MANUAL)