- 浏览: 1151586 次
- 性别:
- 来自: 火星郊区
博客专栏
-
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倍效率”开发者
了settings.xml配置,下来说一下maven2的主要配置pom.xml
什么是pom?
pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。
快速察看:
xml 代码
<project> <modelVersion>4.0.0</modelVersion> <!-- The Basics --> <groupId>...</groupId> <artifactId>...</artifactId> <version>...</version> <packaging>...</packaging> <dependencies>...</dependencies> <parent>...</parent> <dependencyManagement>...</dependencyManagement> <modules>...</modules> <properties>...</properties> <!-- Build Settings --> <build>...</build> <reporting>...</reporting> <!-- More Project Information --> <name>...</name> <description>...</description> <url>...</url> <inceptionYear>...</inceptionYear> <licenses>...</licenses> <organization>...</organization> <developers>...</developers> <contributors>...</contributors> <!-- Environment Settings --> <issueManagement>...</issueManagement> <ciManagement>...</ciManagement> <mailingLists>...</mailingLists> <scm>...</scm> <prerequisites>...</prerequisites> <repositories>...</repositories> <pluginRepositories>...</pluginRepositories> <distributionManagement>...</distributionManagement> <profiles>...</profiles> </project>
基本内容:
POM包括了所有的项目信息。
maven 相关:
pom定义了最小的maven2元素,允许groupId,artifactId,version。所有需要的元素
groupId:项目或者组织的唯一标志,并且配置时生成的路径也是由此生成,如org.codehaus.mojo生成的相对路径为:/org/codehaus/mojo
artifactId: 项目的通用名称
version:项目的版本
packaging: 打包的机制,如pom, jar, maven-plugin, ejb, war, ear, rar, par
classifier: 分类
POM关系:
主要为依赖,继承,合成
依赖关系:
xml 代码
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.0</version> <type>jar</type> <scope>test</scope> <optional>true</optional> </dependency> ... </dependencies>
groupId, artifactId, version:描述了依赖的项目唯一标志
可以通过以下方式进行安装:
使用以下的命令安装:
mvn install:install-file --Dfile=non-maven-proj.jar --DgroupId=some.group --DartifactId=non-maven-proj --Dversion=1
创建自己的库,并配置,使用deploy:deploy-file
设置此依赖范围为system,定义一个系统路径。不提倡。
type:相应的依赖产品包形式,如jar,war
scope:用于限制相应的依赖范围,包括以下的几种变量:
compile :默认范围,用于编译
provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath
runtime:在执行时,需要使用
test:用于test任务时使用
system:需要外在提供相应得元素。通过systemPath来取得
systemPath: 仅用于范围为system。提供相应的路径
optional: 标注可选,当项目自身也是依赖时。用于连续依赖时使用
独占性
外在告诉maven你只包括指定的项目,不包括相关的依赖。此因素主要用于解决版本冲突问题
xml 代码
<dependencies> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-embedder</artifactId> <version>2.0</version> <exclusions> <exclusion> <groupId>org.apache.maven</groupId> <artifactId>maven-core</artifactId> </exclusion> </exclusions> </dependency>
表示项目maven-embedder需要项目maven-core,但我们不想引用maven-core
继承关系
另一个强大的变化,maven带来的是项目继承。主要的设置:
定义父项目
xml 代码
<project> <modelVersion>4.0.0</modelVersion> <groupId>org.codehaus.mojo</groupId> <artifactId>my-parent</artifactId> <version>2.0</version> <packaging>pom</packaging> </project>
packaging 类型,需要pom用于parent和合成多个项目。我们需要增加相应的值给父pom,用于子项目继承。主要的元素如下:
依赖型
开发者和合作者
插件列表
报表列表
插件执行使用相应的匹配ids
插件配置
子项目配置
xml 代码
<project> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.codehaus.mojo</groupId> <artifactId>my-parent</artifactId> <version>2.0</version> <relativePath>../my-parent</relativePath> </parent> <artifactId>my-project</artifactId> </project>
relativePath可以不需要,但是用于指明parent的目录,用于快速查询。
dependencyManagement:
用于父项目配置共同的依赖关系,主要配置依赖包相同因素,如版本,scope。
合成(或者多个模块)
一个项目有多个模块,也叫做多重模块,或者合成项目。
如下的定义:
xml 代码
<project> <modelVersion>4.0.0</modelVersion> <groupId>org.codehaus.mojo</groupId> <artifactId>my-parent</artifactId> <version>2.0</version> <modules> <module>my-project1<module> <module>my-project2<module> </modules> </project>
build 设置
主要用于编译设置,包括两个主要的元素,build和report
build
主要分为两部分,基本元素和扩展元素集合
注意:包括项目build和profile build
xml 代码
<project> <!-- "Project Build" contains more elements than just the BaseBuild set --> <build>...</build> <profiles> <profile> <!-- "Profile Build" contains a subset of "Project Build"s elements --> <build>...</build> </profile> </profiles> </project>
基本元素
xml 代码
<build> <defaultGoal>install</defaultGoal> <directory>${basedir}/target</directory> <finalName>${artifactId}-${version}</finalName> <filters> <filter>filters/filter1.properties</filter> </filters> ... </build>
defaultGoal: 定义默认的目标或者阶段。如install
directory: 编译输出的目录
finalName: 生成最后的文件的样式
filter: 定义过滤,用于替换相应的属性文件,使用maven定义的属性。设置所有placehold的值
资源(resources)
你项目中需要指定的资源。如spring配置文件,log4j.properties
xml 代码
<project> <build> ... <resources> <resource> <targetPath>META-INF/plexus</targetPath> <filtering>false</filtering> <directory>${basedir}/src/main/plexus</directory> <includes> <include>configuration.xml</include> </includes> <excludes> <exclude>**/*.properties</exclude> </excludes> </resource> </resources> <testResources> ... </testResources> ... </build> </project>
resources: resource的列表,用于包括所有的资源
targetPath: 指定目标路径,用于放置资源,用于build
filtering: 是否替换资源中的属性placehold
directory: 资源所在的位置
includes: 样式,包括那些资源
excludes: 排除的资源
testResources: 测试资源列表
插件
在build时,执行的插件,比较有用的部分,如使用jdk 5.0编译等等
xml 代码
<project> <build> ... <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.0</version> <extensions>false</extensions> <inherited>true</inherited> <configuration> <classifier>test</classifier> </configuration> <dependencies>...</dependencies> <executions>...</executions> </plugin> </plugins> </build> </project>
extensions: true or false,是否装载插件扩展。默认false
inherited: true or false,是否此插件配置将会应用于poms,那些继承于此的项目
configuration: 指定插件配置
dependencies: 插件需要依赖的包
executions: 用于配置execution目标,一个插件可以有多个目标。
如下:
xml 代码
<plugin> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <id>echodir</id> <goals> <goal>run</goal> </goals> <phase>verify</phase> <inherited>false</inherited> <configuration> <tasks> <echo>Build Dir: ${project.build.directory}</echo> </tasks> </configuration> </execution> </executions> </plugin>
说明:
id:规定execution 的唯一标志
goals: 表示目标
phase: 表示阶段,目标将会在什么阶段执行
inherited: 和上面的元素一样,设置false maven将会拒绝执行继承给子插件
configuration: 表示此执行的配置属性
插件管理
pluginManagement:插件管理以同样的方式包括插件元素,用于在特定的项目中配置。所有继承于此项目的子项目都能使用。主要定义插件的共同元素
扩展元素集合
主要包括以下的元素:
Directories
用于设置各种目录结构,如下:
xml 代码
<build> <sourceDirectory>${basedir}/src/main/java</sourceDirectory> <scriptSourceDirectory>${basedir}/src/main/scripts</scriptSourceDirectory> <testSourceDirectory>${basedir}/src/test/java</testSourceDirectory> <outputDirectory>${basedir}/target/classes</outputDirectory> <testOutputDirectory>${basedir}/target/test-classes</testOutputDirectory> ... </build>
Extensions
表示需要扩展的插件,必须包括进相应的build路径。
xml 代码
<project> <build> ... <extensions> <extension> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-ftp</artifactId> <version>1.0-alpha-3</version> </extension> </extensions> ... </build> </project>
Reporting
用于在site阶段输出报表。特定的maven 插件能输出相应的定制和配置报表。
xml 代码
<reporting> <plugins> <plugin> <outputDirectory>${basedir}/target/site</outputDirectory> <artifactId>maven-project-info-reports-plugin</artifactId> <reportSets> <reportSet></reportSet> </reportSets> </plugin> </plugins> </reporting>
Report Sets
用于配置不同的目标,应用于不同的报表
xml 代码
<reporting> <plugins> <plugin> ... <reportSets> <reportSet> <id>sunlink</id> <reports> <report>javadoc</report> </reports> <inherited>true</inherited> <configuration> <links> <link>http://java.sun.com/j2se/1.5.0/docs/api/</link> </links> </configuration> </reportSet> </reportSets> </plugin> </plugins> </reporting>
发表评论
-
svn和maven结合使用
2012-09-27 12:46 1096目前项目组在开发一个 ... -
用nexus搭建maven私服
2012-09-13 09:12 1127首先介绍一下背景,公 ... -
maven 去掉泛型警告和过时警告
2012-09-11 13:04 3453使用maven的过程中,常常会因为一些警告而不能通过编译,例如 ... -
maven 配置篇 之pom.xml
2012-08-27 08:36 1075pom作为项目对象模型。通过xml表示maven项目,使用 ... -
maven 配置篇 之 settings.xml 整理中...
2012-08-27 08:34 1162maven2比起maven1 来说,需要配置的文件 ... -
使用maven2 进行团队配置 整理中
2012-08-27 08:31 1395对于团队来说,建立统一的开发环境是必须的,而maven能很好 ... -
联通网络环境下无法访问http://repo1.maven.org/maven2/中央库解决,镜像库添加
2012-08-27 08:30 1622Maven 2的安装和使用虽然不是一点即用,但也不是很复杂 ... -
Maven新建欧洲中央镜像源
2012-07-12 09:42 1190熟悉maven的朋友都知道,我们maven的中央镜像源一直都 ... -
Maven properties
2012-01-19 10:57 1177Intro Because I couldn't fin ... -
maven常见问题问答
2011-12-29 08:21 1165. 前言 Maven ,发音是[`me ... -
Nexus入门指南(图文)
2011-12-28 08:16 1086Nexus介绍 Nexus 是Maven仓 ... -
Maven中多模块项目的Site生成
2011-12-31 08:46 1350疲累不堪的我一定不能在写完之前倒下。Maven生成站点大家都会 ... -
Maven的配置和使用
2011-12-29 08:21 11311、下载和安装maven 注:在使用之前,应首先安装 ... -
maven2站点的定制和发布
2012-01-05 11:02 1817mvn site功能强大,特别是在生成的项目站点中可以添加很多 ... -
一劳永逸的修改Maven的编译级别
2011-12-20 13:28 1355网络上最常见的方式是: Xhtml代码 ... -
Maven问题总结
2011-12-20 11:50 1982Maven问题总结 参考:http://tianya ... -
maven创建项目实例讲解
2011-12-06 10:14 1205在正文开始前,先要特别感觉两位同学——光远师兄和浩天,谢 ... -
Maven2 的新特性
2011-11-26 16:11 937Maven2 已经推出,Maven 的 ... -
Maven 配置
2011-11-18 08:27 1560在mvn.bat中很有用的一段 说了可以设置哪些参数 怎么de ... -
maven入门总结
2011-10-20 09:39 1100刚来公司使用的第一个构建工具就是maven,当时学会了几个 ...
相关推荐
本篇文章将详细讲解在配置Maven时需要注意的一些关键点,确保你的开发环境能够顺利运行。 首先,要安装Maven。通常,你需要从Apache官方网站下载最新版本的Maven,并按照安装指南进行安装。在MyEclipse开发环境中,...
在Java开发领域,Maven是一个不可...而提供的压缩包文件“maven配置文件”应该包含了一个已经配置好阿里云链接的`settings.xml`,可以直接使用,无需手动修改。这将极大地帮助开发者快速获取到所需的库,提升开发体验。
在“Apache Maven入门篇(上)”中,我们将探讨Maven的基本概念、安装步骤以及如何创建和管理一个简单的Java项目。 1. Maven的核心概念: - **POM(Project Object Model)**:POM是Maven项目的核心,是一个XML文件...
Maven配置详解及Eclipse集成 Maven是一款强大的项目管理和构建工具,它简化了Java项目的构建、依赖管理和部署过程。在本文中,我们将深入探讨Maven的配置以及如何在Eclipse中进行集成。 首先,让我们从Maven的配置...
三、Maven配置 1. POM.xml配置: Maven的配置主要通过修改pom.xml文件实现。例如,添加依赖库: ```xml <groupId>com.example</groupId> <artifactId>library <version>1.0.0 ``` 或者配置构建插件:...
#### 二、Maven配置文件settings.xml的作用 在Maven项目中,`settings.xml` 文件是Maven的核心配置文件之一,用于定义Maven的行为和配置各种环境设置。正确配置这个文件对于确保Maven能够正确地工作非常重要。 ###...
**Maven配置详解** Maven,作为Java项目管理和构建工具,是开发人员不可或缺的利器。它的核心功能包括项目对象模型(Project Object Model, POM)、依赖管理和项目信息管理。本篇将详细介绍Maven的基本配置步骤,...
这篇博客将引导初学者进行Maven的安装与环境配置。 首先,我们来了解Maven的基本概念。Maven的核心理念是“约定优于配置”,这意味着它有一套默认的构建生命周期和插件,使得大部分项目无需大量定制即可工作。Maven...
【描述】与【标签】中并未提供具体的知识点,但根据【部分内容】,我们可以推断出本篇主要涉及的是Android开发中的Maven仓库配置,包括Nexus私库的安装与配置,以及在Android Studio中如何配置Maven仓库以下载和发布...
在IT行业中,Spring框架是Java开发中的一个核心组件,它极大地简化了企业级应用的构建。...在实际项目中,应根据项目需求和团队习惯,合理地利用Spring注解和Maven配置,以实现高效、高质量的软件开发。
在本篇文章中,我们将深入探讨Maven文件仓库镜像及其重要性。 Maven仓库分为本地仓库、远程仓库和中央仓库。本地仓库是每个开发者机器上默认创建的,用于存储下载的依赖项。当项目构建时,Maven首先会查找本地仓库...
本篇文章将深入探讨 Maven 的通用配置,帮助开发者更有效地利用这一工具。 ### 1. Maven 配置文件 Maven 的主要配置文件是 `settings.xml`,通常位于用户的 `.maven` 目录下,路径为 `%USER_HOME%/.maven/conf/...
### MAVEN基础篇-资料整理 #### 第一章 Maven 简介 ##### 1.1 软件开发中的阶段 在软件开发过程中,一个典型的项目生命周期包括多个阶段:初始化、配置管理、源代码管理、编译、测试、打包、验证、部署等。每个...
**Maven教程:基础篇——尚硅谷学习笔记 2022年** Maven是一个强大的Java项目管理和构建工具,由Apache软件基金会开发。它通过提供一个标准的项目对象模型(Project Object Model,POM)来简化项目的构建过程,并...
在本篇文章中,我们将详细介绍如何使用IntelliJ IDEA 14.1.4版本结合Maven来创建一个Java Web项目。这种方法不仅能够提高开发效率,还能确保项目的结构更加规范。以下是详细的步骤和需要注意的关键点。 #### 二、...
【描述】虽然描述信息为"NULL",但我们可以推断,这篇博文可能详细介绍了如何配置Maven来使用开源中国(Maven仓库)作为镜像,以便在开发过程中更快地获取依赖。通常,这涉及到修改Maven的全局`settings.xml`文件,...
本篇文章将深入探讨sdoapi、sdoutl-1.0以及在Maven项目中如何正确配置它们的pom.xml文件。 首先,让我们了解SDOAPI。SDO(Service Data Object)是一种标准的数据模型,它定义了一个统一的数据访问接口,允许应用...
这篇博文主要讨论了`pom.xml`文件中的常用配置,以帮助开发者更好地理解和使用Maven。 首先,`<project>`是`pom.xml`的根元素,它包含了关于项目的所有信息。其中,`<modelVersion>`定义了pom模型的版本,通常是...
通常,开发者会创建多个Maven配置文件(profiles),每个文件对应一个特定的环境,然后通过filtering功能过滤资源文件中的变量,实现环境间配置的切换。 【标签】:“源码 工具” “源码”标签暗示了讨论可能涉及...