- 浏览: 1007905 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (394)
- OSGI (14)
- 多线程 (10)
- 数据库 (30)
- J2ME (1)
- JAVA基础知识 (46)
- 引用包 (1)
- 设计模式 (7)
- 工作流 (2)
- Ubuntu (7)
- 搜索引擎 (6)
- QT (2)
- Ubuntu下编程 (1)
- 小程序 (2)
- UML (1)
- Servlet (10)
- spring (16)
- IM (12)
- 文档视频转为flash格式在线播放 (19)
- Maven (8)
- 远程调用 (2)
- PHPRPC (1)
- EXTJS学习 (2)
- Hibernate (16)
- 技术文章 (38)
- flex (5)
- 海量数据处理 (5)
- FTP (8)
- JS (10)
- Struts (1)
- hibernate search (13)
- JQuery (2)
- EMail (3)
- 算法 (4)
- SVN (7)
- JFreeChart (4)
- 面试 (4)
- 正规表达式 (2)
- 数据库性能优化 (10)
- JVM (6)
- Http Session Cookie (7)
- 网络 (12)
- Hadoop (2)
- 性能 (1)
最新评论
-
hy1235366:
能够随便也发一下,你退火算法程序使用的DistanceMatr ...
模拟退火算法总结(含例子)(转) -
梅强强:
感谢分享。。帮大忙了
swftools转换文件时线程堵塞问题的解决方法 -
wenlongsust:
openoffice和文件不在同一个服务器上,用过吗?
[JODConverter]word转pdf心得分享(转) -
2047699523:
如何在java Web项目中开发WebService接口htt ...
利用Java编写简单的WebService实例 -
abingpow:
唉,看起来好像很详细很不错的样子,可惜不是篇面向初学者的文章, ...
Spring与OSGi的整合(二)(转)
(1) eclipse中使用jdk1.5,不要使用jre,环境变量java_home也要使用1.5。 (2) 安装maven。 解压缩apache-maven-2.0.9.zip到%M2_HOME%, 比如:D:\software\\apache-maven-2.0.9,在环境变量中增加M2_HOME,在path中添加:“%M2_HOME%\bin” 。 (3) 在开发环境中安装m2插件。 ü Eclipse: 直接将共享的m2eclipse插件拷贝到eclipse安装目录对应的plugin和features目录下。 ü myEclipse: myEclipse6.5自带了maven4myeclipse,但由于bug超多,在安装之前需要先卸载,手工删除MyEclipse安装目录下myeclipse/eclipse/features和myeclipse/eclipse/plugins这两个目录下与maven相关的文件,可以先在这2个目录中搜索一下,带有“maven” 的文件和文件夹全部删除即可,然后再拷贝插件到plugin和features目录下。 ü 如果需要自行下载m2插件安装,步骤为:help->soft ware updates->find and install->search new features to install->new remote site,name名称输入“maven”,URL为:“http://m2eclipse.sonatype.org/update/”。 注意:如果查找到多个“maven_embedder 2.1.0.20080530-2300”,只能选择其中一个,否则可能出现安装的插件不可用的错误。 (4) 设置“M2_REPO 变量” ü window >> preferences >> Java >> Build Path >> Classpath Variables,新建一个 M2_REPO 的变量,变量值指向自己本地数据仓库位置。例如D:/myRepository/repository。 (5) 将工程导入eclipse中,注意eclipse中的setting.xml与安装maven后conf目录下的setting.xml不同,maven有2种级别的setting.xml: ü %M2_HOME%/conf/settings.xml,这是针对该部电脑的所有用户的profiles,是global profiles,它会影响所有的maven project build ü <your -home-directory>/.m2/settings.xml,这是针对每个用户的profiles,是user级的profiles,它会影响当前用户的所有maven project build。 ü 将共享的setting.xml拷贝到如图所示的位置中:<your -home-directory>/.m2/settings.xml。修改settings.xml 中localRepository的值为自己的存储位置。 (6) 向setting.xml配置所指定的repository目录中拷贝maven插件。(目前这些插件没有上传到111.74机器,后续如果跟cmp使用同一个私服的话,使用时会自动下载。) (7) 在工程所在的目录中使用cmd,敲入 mvn compile,进行编译,并下载工程依赖的jar包。(jar包较多,需要下载一段时间。) 如果需要经常使用cmd运行maven命令,建议在右键菜单中增加“cmd”,具体方法为: ü 打开“我的电脑”,点击菜单中的“工具”-“文件夹选项”,选择“文件类型”,找到“(无)资料夹”,点“高级”,“新建”,在“操作”中填入 “CMD”(其实爱填什么都可以),“用于执行操作的应用程序”中填入“cmd.exe /k cd %1”,确定。 <localRepository>D:/myRepository/repository</localRepository> 位置根据自己的存储情况而定,这个位置要跟1.1的第四步设置的路径相同。 1.<offline>false</offline> 2.设置profile构建环境。
1.1准备
1.2配置setting.xml
1.2.1指定本地仓库,localRepository如下设置:
1.2.2指定私服,下载jar包。
<profiles>
……
<profile>
<id>artifactory</id>
<repositories>
<repository>
<id>ext-releases-local</id>
<url>http://10.164.111.74:8082/artifactory/repo</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>ext-snapshots-local</id>
<url>http://10.164.111.74:8082/artifactory/repo</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>plugins-releases-local</id>
<url>http://10.164.111.74:8082/artifactory/repo</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>plugins-snapshots-local</id>
<url>http://10.164.111.74:8082/artifactory/repo</url>
<releases>
<enabled>false</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
</profile>
<profiles>
3.最后激活该profile。
<activeProfiles> <activeProfile>artifactory</activeProfile> </activeProfiles>
4.附profile配置说明:
< profiles >:我们可以在profile中定义一组我们需要使用的私服上仓库 <profiles> <profile> <id> artifactory</id> <!--profile的ID--> <repositories> <repository> <id> ext-snapshots-local</id> <!--仓库的id,对应与私服上的Local或Remote仓库--> <name>pmp remote snapshot repository</name> <!--该仓库的描述--> <url>http://10.164.79.191:8081/artifactory/libs-snapshots</url> <!--该仓库的地址--> <snapshots> <!-- snapshot项--> <enabled>true</enabled> <!--true表示该仓库处理snapshot类型的构件--> <updatePolicy>always</updatePolicy> <!--这里可取值为:always(一直),daily(默认,每日),interval:X(这里X以分钟为单位的时间间隔),或者never(从不)。--> <!--Tips:对于snapshot,建议设置为always,它可以保证引用的snapshot版本的构件自动更新--> </snapshots> <releases> <!--release项目--> <enabled>false</enabled> <!--false表示该仓库不处理Release型的构件--> </releases> </repository> </repositories> </profile> </profiles>1.2.3如果是代理上网,需设置代理。
如果需要自动下载internet上的jar包,按照如下进行设置。
注意,如果使用:mvn deploy命令部署工程,则需要注释掉该段代码,否则出现http504错误。
<proxies> <proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <host>proxycn2.huawei.com</host> <port>8080</port> <nonProxyHosts>local.net,some.host.com</nonProxyHosts> </proxy> </proxies>1.2.4 设置私服的登陆信息。
如果不进行设置,会出现如下错误:
Error deploying artifact: Failed to transfer file: http://10.164.111.74:8082/artifactory/*.jar. Return code is: 401。
配置用户密码:
<servers> <server> <id>artifactory</id> <username>admin</username> <password>password</password> </server> </servers> …… <repository> <id>internal-artifactory</id> <url>http://10.164.111.74:8082/artifactory/repo</url> </repository>
1.3 Maven常用命令
maven定义的主要生命周期:
validate: 验证项目是否正确以及相关信息是否可用。
compile: 编译。
test: 通过junit进行单元测试。
package: 根据事先指定的格式(比如jar),进行打包。
integration-test: 部署到运行环境中,准备进行集成测试。
verify: 对包进行有效性性和质量检查。
install: 安装到本地代码库。
deploy: 在集成或发布环境,将包发布到远程代码库。
常用命令:
ü mvn archetype:create -DgroupId=com.huawei.bme -DartifactId=test –Dversion=1.0
创建普通应用项目
ü mvn archetype:create -DgroupId=com.huawei.bme -DartifactId=testWeb -DarchetypeArtifactId=maven-archetype-webapp
创建WEB项目
ü mvn eclipse:eclipse
生成 Eclipse 项目文件及包引用定义,注意,需事先定义Classpath Variables: M2_REPO,指向本地maven类库目录。
ü mvn compile
编译主程序源代码,不会编译test目录的源代码。第一次运行时,会下载相关的依赖包,可能会比较费时。
ü mvn test-compile
编译测试代码,compile之后会生成target文件夹,主程序编译在classes下面,测试程序放在test-classes下。
ü mvn test
运行应用程序中的单元测试
ü mvn site
生成项目相关信息的网站,发布站点在target/site里。
ü mvn clean
清除目标目录(target)中的生成结果。
ü mvn package
依据项目,打包类型为jar的,在目录target中就会生成 jar 文件,打包类型为war的,生成 war 文件,打包之前会进行编译,测试。
ü mvn install
在本地 Repository 中安装 jar。
ü mvn deploy
在远程 Repository 中发布。
ü mvn install -DskipTests=true
忽略单元测试,在本地 Repository 中安装 jar。
ü mvn eclipse:clean
清除 Eclipse 项目文件及包引用定义
ü mvn install:install -file -Dfile=D:/opensource/dbunit-2.2/dbunit-2.2.jar -DgroupId=dbunit-DartifactId=junitperf -Dversion=2.2 -Dpackaging=jar
发布到本地仓库
ü mvn deploy:deploy -file -DgroupId=staticComparison -DartifactId=static-comparison -Dversion=2.0 -Dpackaging=jar -Dfile=c:/staticComparison_2.0.jar
发布到远程仓库
ü mvn help:describe -Dplugin=compiler -Dmojo=compile –Dfull
列出Compiler 插件的compile 目标的所有信息
ü pom: mvn help:effective-pom
查看实际使用的pom
ü mvn dependency:analyze
分析项目依赖
1.4 FAQ
1.4.1创建maven 工程时报找不到“RELEASE”版本的插件错误
当使用mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app来创建一个新项目时,有时候会出现以下错误:
。。。。。。。
[INFO] Velocimacro : initialization complete.
[INFO] Velocity successfully started.
[INFO] [archetype:create]
[INFO] Defaulting package to group ID: com.mycompany.app
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
------------------------------------------------------------------------
[INFO] Failed to resolve artifact.
GroupId: org.apache.maven.archetypes
ArtifactId: maven-archetype-quickstart
Version: RELEASE
Reason: Unable to determine the release version
Try downloading the file manually from the project website.
Then, install it using the command:
mvn install:install-file -DgroupId=org.apache.maven.archetypes
-DartifactId=maven-arch
etype-quickstart \
-Dversion=RELEASE -Dpackaging=jar -Dfile=/path/to/file
……
由于在maven本地仓库中,可能更新了某个plug-in的版本,但本地plug-in 的metadata没有版本的信息或者没有最新版本的信息,致使maven无法下载正确的版本。具体步骤如下:
1.找到最新的插件版本,如果私服上没有,则需要在网上下载,网址:http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/maven/archetypes/maven-archetype-quickstart/
2.选择最新版本并且下载最新的“maven-archetype-quickstart-1.0-alpha-4.jar ”文件
3.安装这个archetype到maven本地仓库。使用命令如下:mvn install:install-file -DgroupId=org.apache.maven.archtypes -DartifactId=maven-archetype-quickstart -Dversion=1.0-alpha-4 -Dpackaging=jar -Dfile=c:\7000\maven\maven-archetype-quickstart-1.0-alpha-4.jar。注意-Dfile是刚下载的文件的路径。
1.4.2 Deploy时出现: http502、 504错误
网关错误, 由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答, deploy时需要向私服上传release或snapshot版本的归档包,所以出现该错误时要先检查是否可以连接到私服。 如果setting.xml中设置了<proxies> <proxy>…… </proxy></proxies>代理,要取消。
1.4.3 Deploy时出现: code 401错误
错误描述为:
Error deploying artifact: Failed to transfer file: http://10.164.111.74:8082/artifactory/*.jar. Return code is: 401。
参照1.2.4设置私服登陆信息。
1.4.4 mvn eclipse:eclipse 导入工程后出现:Unbound classpath variable: M2_REPO 错误
建立一个工程后,执行 mvn eclipse:eclipse,会产生eclipse的工程文件,但是第一次用eclipse打开工程后,发现报如下错误:Unbound classpath variable: 'M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar' in project my-webapp ,需要在Eclipse 中配置 M2_REPO 变量。
配置步骤:window >> preferences >> Java >> Build Path >> Classpath Variables,新建一个 M2_REPO 的变量,变量值指向你系统的Maven2的数据仓库位置。例如前面提到了D:/myRepository/repository
发表评论
-
java maven project 打包异常
2010-12-22 10:12 1438我在myEclipse里将java maven project ... -
Nexus入门指南(图文) (转)
2010-12-12 22:27 1540出自:http://juvenshun.i ... -
A cycle was detected in the build path of project:(转)
2010-10-15 22:22 2836解决Eclipse中Java工程间循环引用而报错的问题 如果我 ... -
MyEclipse下创建Maven Web Project
2010-09-09 11:19 10563网上很多介绍创建maven project,多数是用命令行来做 ... -
创建不能Maven Project
2010-09-07 09:07 9191我的myeclipse创建maven项目时,出 ... -
用nexus建立maven的私服(转)
2010-09-07 09:05 1787最近研究了下Maven的知 ... -
Maven2的使用(转)
2010-09-04 17:18 1315最近开始使用maven2,居然和以前的maven1.X相差甚远 ...
相关推荐
### Maven安装配置手册知识点概述 #### 一、Maven概览 Maven是一个项目管理和综合工具,主要用于Java项目。它的设计理念是“约定优于配置”,即通过预设的规则和标准来减少配置工作量,使开发者能够更加专注于业务...
《Maven使用手册V3.0》 Maven,一个由Apache软件基金会开发的项目管理工具,旨在提供一个一致且可重复的方式来构建和管理Java项目。它的核心理念是“约定优于配置”,即通过一套标准的项目结构和自动化构建过程,...
** Maven完全手册 ** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和依赖管理过程。这份“maven完全手册”是个人精心整理的中文文档,旨在帮助开发者全面理解并掌握Maven的使用...
Apache Maven 是一个强大的项目管理和构建工具,尤其在Java开发领域广泛应用。它的主要目的是简化软件项目的构建过程,通过一套约定的规则和自动化流程,使得开发者能够更专注于代码本身,而不是构建细节。 1. ...
**Maven2 指南** Maven2 是一个强大的构建工具,专为Java项目设计,旨在简化构建过程,统一项目配置。相比Ant,Maven2 提供了更高效的依赖管理和构建流程,使得开发人员能够更加专注于代码本身,而不是构建过程。 ...
**Maven学习手册** 在软件开发领域,Maven是一个强大的构建工具,主要用于Java项目管理。它简化了构建过程,依赖管理和项目的标准化。本手册旨在帮助开发者深入理解和有效地使用Maven,结合作者的实际项目经验,...
本手册将详细阐述Maven的安装过程及其在实际开发中的使用方法。 ### Maven的核心概念 1. **项目对象模型(POM)**: POM是Maven的核心,它是一个XML文件,包含了项目的基本信息,如项目名称、版本、依赖关系、构建...
** Maven2 中文使用手册 ** Maven 是一个强大的项目管理工具,主要应用于Java开发领域。它通过自动化构建过程,简化项目的构建、依赖管理和文档生成。Maven2 是 Maven 的第二个主要版本,虽然现在已经更新到了 ...
**Maven完全适用手册概述** Maven是一款强大的Java项目管理和集成工具,它通过XML格式的配置文件(pom.xml)来管理项目的构建、报告和依赖关系。Maven2相较于其前身Maven1进行了大量改进,提供了更高效、简洁的体验...
Maven 2 使用手册,chm中文格式。
在Ubuntu16.04平台搭建maven私有服务器,包括私服的配置和在项目中私有仓库引入和使用。 Maven可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。 Nexus 是一个强大的仓库管理器。
### Nexus搭建Maven私服指导手册 #### 一、Nexus使用背景 在现代软件开发过程中,Maven作为构建工具在Java项目中占据了重要的地位。Maven通过定义项目的对象模型(POM),仅需一个简单的命令就能实现构建和依赖...
### Maven+Nexus 完整手册 #### 一、Nexus 安装与启动 Nexus 是一款由 Sonatype 提供的开源组件管理平台,能够帮助开发者有效地管理项目的依赖关系。安装 Nexus 的步骤主要包括: 1. **下载 Nexus**:访问官方...
Maven2完全使用手册旨在全面讲解Maven2的使用和配置,帮助开发者更好地理解和掌握这款强大的Java项目管理工具。相较于Maven1,Maven2进行了大幅度的改进,提升了性能并简化了配置过程。 1. **更快、更简单**:Maven...