- 浏览: 1148996 次
- 性别:
- 来自: 火星郊区
博客专栏
-
OSGi
浏览量:0
文章分类
- 全部博客 (695)
- 项目管理 (48)
- OSGi (122)
- java (79)
- Vaadin (5)
- RAP (47)
- mysql (40)
- Maven (22)
- SVN (8)
- 孔雀鱼 (10)
- hibernate (9)
- spring (10)
- css (3)
- 年审 (6)
- ant (1)
- jdbc (3)
- FusionCharts (2)
- struts (4)
- 决策分析 (2)
- 生活 (10)
- 架构设计 (5)
- 破解 (2)
- 狼文化 (4)
- JVM (14)
- J2EE (1)
- 应用服务器 (1)
- 我的链接 (5)
- 数学 (2)
- 报表 (1)
- 百科 (6)
- Flex (7)
- log4j (2)
- PHP (1)
- 系统 (2)
- Web前端 (7)
- linux (6)
- Office (1)
- 安全管理 (5)
- python (2)
- dom4j (1)
- 工作流 (3)
- 养生保健 (4)
- Eclipse (8)
- 监控开发 (1)
- 设计 (3)
- CAS (1)
- ZK (41)
- BluePrint (3)
- 工具 (1)
- SWT (7)
- google (2)
- NIO (1)
- 企业文化 (2)
- Windoes (0)
- RCP (7)
- JavaScript (10)
- UML (1)
- 产品经理 (2)
- Velocity (10)
- C (1)
- 单元测试 (1)
- 设计模式 (2)
- 系统分析师 (2)
- 架构 (4)
- 面试 (2)
- 代码走查 (1)
- MongoDB (1)
- 企业流程优化 (1)
- 模式 (1)
- EJB (1)
- Jetty (1)
- Git (13)
- IPV6 (1)
- JQuery (8)
- SSH (1)
- mybatis (10)
- SiteMesh (2)
- JSTL (1)
- veloctiy (1)
- Spring MVC (1)
- struts2 (3)
- Servlet (1)
- 权限管理 (1)
- Java Mina (1)
- java 系统信息 (6)
- OSGi 基础 (3)
- html (1)
- spring--security (6)
- HTML5 (1)
- java爬虫搜索 (1)
- mvc (3)
最新评论
-
Tom.X:
http://osgia.com/
将web容器置于OSGi框架下进行web应用的开发 -
chenyuguxing:
你好, 为什么我的bundle export到felix工程中 ...
在Apache Felix中运行bundle -
string2020:
<niceManifest>true</ni ...
Bundle Plugin for Maven -
jsonmong:
OSGI,是未来的主流,目前已相当成熟。应用OSGI比较好的, ...
基于OSGi的声明式服务 -
zyhui98:
貌似是翻译过来的,有很少人在linux上做开发吧
如何成为“10倍效率”开发者
对于团队来说,建立统一的开发环境是必须的,而maven能很好帮助建立统一的环境。下面就介绍如何更有效的进行统一的配置。
准备工作:
下载必须的软件:[url]maven2: http://maven.apache.org/download.html [/url]最主要的
maven-proxy:用来代理repository,使用代理来访问多个远程库
http://maven-proxy.codehaus.org/
continuum:一个不错的持续整合工具,用于自动build。支持ant,maven
http://maven.apache.org/continuum/
svn:版本控制工具
创建一致的开发环境
在共享的开发环境中,更好的建议是保持maven的两个不同的配置文件分别管理,包括共享和用户自定义设置。共同的配置包括在安装目录中,而单独的开发设置保存在用户本地目录。
全局的配置文件settings.xml
- <servers>
- <!--公司内部库,所有的release版本,serverid对应于repository id,用于在deploy时,访问使用,主要保存用户名和密码 -->
- <server>
- <id>internal</id>
- <username>${website.username}</username>
- <password>${website.pwd}</password>
- <filePermissions>664 </filePermissions>
- <directoryPermissions>775 </directoryPermissions>
- </server>
- <!--目前的开发库,用于snapshot库-->
- <server>
- <id>snapshot</id>
- <username>${website.username}</username>
- <password>${website.pwd}</password>
- <filePermissions>664 </filePermissions>
- <directoryPermissions>775 </directoryPermissions>
- </server>
- </servers>
- <profiles>
- <!--定义核心库 maven 镜像,由maven-proxy实现-->
- <profile>
- <id>central-repo</id>
- <repositories>
- <repository>
- <id>central</id>
- <name>Internal Repository</name>
- <url>http://192.168.0.2:9999/repository</url>
- </repository>
- </repositories>
- <pluginRepositories>
- <pluginRepository>
- <id>central</id>
- <name>Internal Repository</name>
- <url>http://192.168.0.2:9999/repository</url>
- </pluginRepository>
- </pluginRepositories>
- </profile>
- <!--定义内部库,包括公司的所有release版本-->
- <profile>
- <id>internal-repo</id>
- <repositories>
- <repository>
- <id>internal</id>
- <name>Internal Repository</name>
- <url>http://192.168.0.2:8080/repo-local</url>
- <releases>
- <enabled>true </enabled>
- <updatePolicy>never</updatePolicy>
- <checksumPolicy>warn</checksumPolicy>
- </releases>
- </repository>
- </repositories>
- <pluginRepositories>
- <pluginRepository>
- <id>internal</id>
- <name>Internal Plugin Repository</name>
- <url>http://192.168.0.2:8080/repo-local</url>
- <releases>
- <enabled>true </enabled>
- <updatePolicy>never</updatePolicy>
- <checksumPolicy>warn</checksumPolicy>
- </releases>
- </pluginRepository>
- </pluginRepositories>
- </profile>
- <!--定义内部开发库 ,也可以合并snapshot和release-->
- <profile>
- <id>snapshot-repo</id>
- <repositories>
- <repository>
- <id>snapshot</id>
- <name>Internal Repository</name>
- <url>http://192.168.0.2:8080/repo-snapshot</url>
- <snapshots>
- <enabled>true </enabled>
- <updatePolicy>interval:60 </updatePolicy>
- <checksumPolicy>warn</checksumPolicy>
- </snapshots>
- </repository>
- </repositories>
- <pluginRepositories>
- <pluginRepository>
- <id>snapshot</id>
- <name>Internal Plugin Repository</name>
- <url>http://192.168.0.2:8080/repo-snapshot</url>
- <snapshots>
- <enabled>true </enabled>
- <updatePolicy>interval:60 </updatePolicy>
- <checksumPolicy>warn</checksumPolicy>
- </snapshots>
- </pluginRepository>
- </pluginRepositories>
- </profile>
- </profiles>
- <!-- 激活相应得配置-->
- <activeProfiles>
- <activeProfile>central-repo</activeProfile>
- <activeProfile>internal-repo</activeProfile>
- <activeProfile>snapshot-repo</activeProfile>
- </activeProfiles>
- <!-- 插件默认groupId -->
- <pluginGroups>
- <pluginGroup>com.mycompany.plugins</pluginGroup>
- </pluginGroups>
包括了以下的共享因素:
服务器设置典型是共同的,只有用户名需要在用户环境中设置。使用一致的定义来配置共同的设置profile定义了共同的因素,内部开发库,包括指
定的组织或者部门发布的产品。这些库独立于核心开发库。激活的profiles列表,用于激活相应的profile plugin
组只有当你的组织中有自己定义的插件,用于命令行运行在pom中定义。
对于单独的用户来说,设置如下:
- <settings>
- <profiles>
- <profile>
- <id>property-overrides</id>
- <properties>
- <website.username>myuser</website.username>
- <website.pwd>test</website.pwd>
- </properties>
- </profile>
- </profiles>
- </settings>
创建共享开发库
大多数组织将会创建自己的内部开发库,用于配置,而中心开发库用于连接maven
设置内部开发库是简单的,使用http协议,可以使用存在的http 服务器。或者创建新的服务,使用apache,或者jetty
假设服务器地址192.168.0.2 ,端口8080
[url]http://192.168.0.2:8080/repo-local [/url]
设置另外一个开发库,用于设置项目的snapshot库http://192.168.0.2:8080/repo-snapshot
中心镜像库,使用maven-proxy创建,当然也可以创建自己的镜像。用于下载本地库中没有的artifact
maven-proxy 设置
从网上直接下载maven-proxy-standalone-0.2-app.jar和 proxy.properties
在命令行中,直接运行java -jar maven-proxy-standalone-0.2-app.jar proxy.properties
主要的配置:
设置repo.list 中增加相应的库就可以,如下定义:
repo.list=repo1.maven.org,...
#maven 的中心库
repo.repo1.maven.org.url=http://repo1.maven.org/maven2
repo.repo1.maven.org.description=maven.org
repo.repo1.maven.org.proxy=one
repo.repo1.maven.org.hardfail=false
repo.repo1.maven.org.cache.period=360000
repo.repo1.maven.org.cache.failures=true
以后所有的远程库,都通过此方式增加。顺便说一下,不要忘了注释原来的example,那是没有办法访问的。
其他配置如
端口号 port=9999
保存的位置 repo.local.store=target/repo
serverName=http://localhost:9999
创建标准的组织pom
定义共同的内容,包括公司的结构,如组织,部门以及团队。
察看一下maven 的自身,可以作为很好的参考。
如scm
- <project>
- <modelVersion>4.0 . 0 </modelVersion>
- <parent>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-parent</artifactId>
- <version>1 </version>
- </parent>
- <groupId>org.apache.maven.scm</groupId>
- <artifactId>maven-scm</artifactId>
- <url>http://maven.apache.org/maven-scm/</url>
- ...
- <modules>
- <module>maven-scm-api</module>
- <module>maven-scm-providers</module>
- ...
- </modules>
- </project>
在maven父项目中可以看到如下定义:
- <project>
- <modelVersion>4.0 . 0 </modelVersion>
- <parent>
- <groupId>org.apache</groupId>
- <artifactId>apache</artifactId>
- <version>1 </version>
- </parent>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-parent</artifactId>
- <version>5 </version>
- <url>http://maven.apache.org/</url>
- ...
- <mailingLists>
- <mailingList>
- <name>Maven Announcements List</name>
- <post>announce@maven .apache.org</post>
- ...
- </mailingList>
- </mailingLists>
- <developers>
- <developer>...</developer>
- </developers>
- </project>
maven 父pom包括了共享的元素,如声明邮件列表,开发者。并且大多数项目继承apache组织:
- <project>
- <modelVersion>4.0 . 0 </modelVersion>
- <groupId>org.apache</groupId>
- <artifactId>apache</artifactId>
- <version>1 </version>
- <organization>
- <name>Apache Software Foundation</name>
- <url>http://www.apache.org/</url>
- </organization>
- <url>http://www.apache.org/</url>
- ...
- <repositories>
- <repository>
- <id>apache.snapshots</id>
- <name>Apache Snapshot Repository</name>
- <url>http://svn.apache.org/maven-snapshot-repository</url>
- <releases>
- <enabled>false </enabled>
- </releases>
- </repository>
- </repositories>
- ...
- <distributionManagement>
- <repository>...</repository>
- <snapshotRepository>...</snapshotRepository>
- </distributionManagement>
- </project>
对于项目自身来说,父pom很少更新。所以,最后的方式保存父pom文件在单独的版本控制区域,它们能够check out,更改和配置.
使用Continuum持久整合
持续整合自动build你的项目,通过一定的时间,包括所有的冲突在早期察觉,而不是发布的时候。另外持续整合也是一种很好的开发方式,使团队成员能产生细微的,交互的变动,能更有效的支持平行开发进程。
可以使用maven的continuum作为持久整合的服务。
安装continuum,比较简,使用以下的命令:
C:\mvnbook\continuum-1.0.3> bin\win32\run
可以通过http://localhost:8082/continuum来验证
为了支持continuum 发送e-mail提醒,你需要相应的smtp服务用于发送信息。默认使用localhost:25,如果你没有设置,编辑上面的文件改变smtp-host设置。
下一步,设置svn目录:
svn co file://localhost/C:/mvnbook/svn/proficio/trunk proficio
编辑pom.xml用于正确相应得e-mail地址。
- ...<ciManagement>
- <system>continuum</system>
- <url>
- http://localhost:8080/continuum
- <notifiers>
- <notifier>
- <type>mail</type>
- <configuration>
- <address>youremail@yourdomain .com</address>
- </configuration>
- </notifier>
- </notifiers>
- </ciManagement>
- ...
- <scm>
- <connection>
- scm:svn:file://localhost/c:/mvnbook/svn/proficio/trunk
- </connection>
- <developerConnection>
- scm:svn:file://localhost/c:/mvnbook/svn/proficio/trunk
- </developerConnection>
- </scm>
- ...
- <distributionManagement>
- <site>
- <id>website</id>
- <url>
- file://localhost/c:/mvnbook/repository/sites/proficio
- /reference/${project.version}
- </url>
- </site>
- </distributionManagement>
提交相应的pom,然后执行mvn install
如果你返回http://localhost:8082/continuum,你会看到相应的项目列表。
一旦你登录后,你可以选择mavan 2.0项目用于增加相应的项目。你可以增加你的url或者提交你的本地内容。
你可以使用本地pom url,如下file://localhost/c:mvnbook/proficio/pom.xml
在提交了此url后,continuum将会返回相应的成功信息。
以下的原则用于更好的帮助持续整合:
早提交,经常提交:当用户经常提交时,持续整合是最有效的。这并不意味着,提交不正确的代码。
经常运行build:用于最快检测失败
尽快修正失败:当失败发生时,应该马上修正失败
建议一个有效的版本
运行clean build
运行复杂的综合测试
build所有的项目结构分支
持续运行项目的拷
发表评论
-
svn和maven结合使用
2012-09-27 12:46 1093目前项目组在开发一个 ... -
用nexus搭建maven私服
2012-09-13 09:12 1127首先介绍一下背景,公 ... -
maven 去掉泛型警告和过时警告
2012-09-11 13:04 3447使用maven的过程中,常常会因为一些警告而不能通过编译,例如 ... -
maven 配置篇 之pom.xml
2012-08-27 08:36 1074pom作为项目对象模型。通过xml表示maven项目,使用 ... -
maven 配置篇 之 settings.xml 整理中...
2012-08-27 08:34 1157maven2比起maven1 来说,需要配置的文件 ... -
联通网络环境下无法访问http://repo1.maven.org/maven2/中央库解决,镜像库添加
2012-08-27 08:30 1619Maven 2的安装和使用虽然不是一点即用,但也不是很复杂 ... -
Maven新建欧洲中央镜像源
2012-07-12 09:42 1188熟悉maven的朋友都知道,我们maven的中央镜像源一直都 ... -
Maven properties
2012-01-19 10:57 1174Intro Because I couldn't fin ... -
maven常见问题问答
2011-12-29 08:21 1164. 前言 Maven ,发音是[`me ... -
Nexus入门指南(图文)
2011-12-28 08:16 1082Nexus介绍 Nexus 是Maven仓 ... -
Maven中多模块项目的Site生成
2011-12-31 08:46 1348疲累不堪的我一定不能在写完之前倒下。Maven生成站点大家都会 ... -
Maven的配置和使用
2011-12-29 08:21 11281、下载和安装maven 注:在使用之前,应首先安装 ... -
maven2站点的定制和发布
2012-01-05 11:02 1811mvn site功能强大,特别是在生成的项目站点中可以添加很多 ... -
一劳永逸的修改Maven的编译级别
2011-12-20 13:28 1350网络上最常见的方式是: Xhtml代码 ... -
Maven问题总结
2011-12-20 11:50 1974Maven问题总结 参考:http://tianya ... -
maven创建项目实例讲解
2011-12-06 10:14 1203在正文开始前,先要特别感觉两位同学——光远师兄和浩天,谢 ... -
maven 配置篇(一)
2011-11-26 16:44 1300了settings.xml配置,下来说一下maven2的主要配 ... -
Maven2 的新特性
2011-11-26 16:11 935Maven2 已经推出,Maven 的 ... -
Maven 配置
2011-11-18 08:27 1559在mvn.bat中很有用的一段 说了可以设置哪些参数 怎么de ... -
maven入门总结
2011-10-20 09:39 1096刚来公司使用的第一个构建工具就是maven,当时学会了几个 ...
相关推荐
【标题】"eclipse使用maven整理文档"涵盖了在Eclipse集成开发环境中使用Maven进行项目管理和文档生成的实践知识。Maven是一个强大的Java项目管理工具,它通过配置文件(pom.xml)来管理项目的构建、依赖关系和文档...
在Maven 3中,默认的JDK版本是1.5,而在Maven 2中则是1.3。开发者可以通过配置该插件来指定源代码和目标代码的JDK版本,如示例所示,将源代码和目标代码的版本设置为1.8,并设定字符集编码为UTF-8。此外,还可以通过...
Maven 使用声明式配置,只需在 `pom.xml` 文件中声明依赖,它就会自动处理构建流程,包括清理、编译、测试、打包和部署等阶段。此外,Maven 提供了生命周期概念,使得插件目标按顺序执行,简化了构建逻辑。 Maven ...
通过以上步骤,你将拥有一个完备的开发环境,能够使用Eclipse进行Maven项目的开发,利用TestNG进行测试,以及通过SVN进行团队间的代码管理。记得在每个环节都检查配置是否正确,以确保所有工具都能正常工作。
该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。1. 创建独立的Spring应用...
本资源包"maven-dependencies.rar"正是为了简化这一过程而精心整理的,包含了常用的Maven依赖,确保开发者在下载后无需再手动查找,极大地提高了开发效率。 首先,我们来深入理解Maven的依赖管理机制。Maven采用一...
在IDE中配置Maven项目,可以方便地进行构建、调试和管理依赖。 总结,本笔记是关于Maven的基础学习材料,涵盖了从安装到使用的各个方面。学习Maven,不仅可以提高个人的项目管理能力,还能提升团队的开发效率。记住...
接着,配置环境变量`M2_HOME`指向Maven的安装目录,并将Maven的bin目录添加到系统的PATH环境变量中。这样,命令行就可以直接使用mvn命令了。 2. Maven安装Eclipse插件: 为了在Eclipse IDE中方便地使用Maven,需要...
【标题】"jk1107 Maven Webapp.zip" 是一个包含蒋老师个人整理的聊天室和杰信商贸项目的Maven Web应用程序的压缩文件。这个压缩包的核心是使用Maven,一个强大的Java项目管理和集成工具,来构建Web应用程序。Maven...
2. **API文档生成**:通过解析Java源代码中的Javadoc注释,自动整理成清晰的API文档。 3. **Swagger兼容**:如果项目已经使用了Swagger注解,Smart Doc可以无缝对接,直接生成Swagger风格的文档。 4. **OpenAPI规范...
标题 "jfinal3.2+maven+idea" 暗示了这个项目是关于使用JFinal 3.2版本,一个轻量级的Java Web框架,集成Maven作为构建工具,并在IntelliJ IDEA这个流行的Java开发环境中进行开发。下面我们将深入探讨JFinal、Maven...
解压这个文件后,开发者可以将Maven配置文件`settings.xml`中的本地仓库路径进行修改,以指向这个新的本地仓库位置。 `settings.xml`通常位于`apache-maven\conf`目录下,文件内有一个`<localRepository>`标签,它...
描述中提到,由于Netty的各个版本间存在较大的差异,所以整理并提供了这个版本的配置,目的是为了帮助开发者避免因版本不匹配导致的问题。这个版本包含了示例代码,意味着开发者可以参考这些样例来理解和学习如何...
- `deploy`:将包部署到远程仓库,供整个团队或外部系统使用。 3. **site生命周期**:用于生成和发布项目站点。包含的阶段包括: - `pre-site`:在生成站点之前执行的任务,如整理文档。 - `site`:生成项目站点...
通过以上步骤,你可以成功配置和使用Hudson进行持续集成。在实际工作中,可以根据项目需求调整配置,例如添加更多的构建触发器,配置更多复杂的构建步骤,或者利用插件实现更高级的功能。Hudson的强大之处在于其灵活...
这个“SpringBoot2零基础入门教程[视频课程].txt打包整理.zip”文件,显然是一份针对初学者的SpringBoot2教程,包含了视频课程的文字资料,可能涵盖了从安装配置到实际应用开发的全过程。 SpringBoot简化了Spring...
使用 Maven Eclipse Format Plugin 非常简单,只需要在项目的 `pom.xml` 文件中添加相应的配置。通过指定插件的版本、目标源代码目录以及是否覆盖现有的格式化设置等参数,可以定制化格式化过程。例如,你可以设置...
在这个项目中,使用maven作为项目管理工具,maven具有强大的依赖管理和构建功能,可以帮助我们整理项目的结构,管理不同模块间的依赖关系,同时提供了一套标准的构建生命周期,使得构建、测试和部署变得更加简单。...
Swagger2Word是一个基于Java的工具,用于将Swagger规格(一种流行的API定义格式)转换为Microsoft Word文档,方便软件开发完成后进行文档整理。Swagger是一种用YAML或JSON编写的规范,用于描述RESTful API,使开发者...
【项目整理】是一个重要的环节,尤其在IT行业中,它涵盖了项目的源码管理和工具的使用,这两部分是确保软件开发高效、稳定和可维护的关键。在这个过程中,开发者需要对项目进行有条不紊的组织,以便于团队协作和后期...