`

perforce java api使用

 
阅读更多
引用
perforce是种版本管理软件,提供啦完整的java api,可以方便我们做一些客户化开发,官方文档http://www.perforce.com/product/components/apis


1 . pom 依赖
<dependency>
			<groupId>com.perforce</groupId>
			<artifactId>p4java</artifactId>
			<version>2011.1.297684</version>
		</dependency>


2. 下载文件示例
public class PerforceUtil {
	private static Logger logger = Logger.getLogger(PerforceUtil.class);
	
	public static void SaveFile(InputStream inputStream, File file) {
		try {
			FileOutputStream out = new FileOutputStream(file);

			byte[] b = new byte[1024];
			int len = 0;
			while ((len = inputStream.read(b)) != -1) {
				out.write(b, 0, len);
			}
			inputStream.close();
			out.close();

		} catch (IOException e) {
			logger.error("", e);
		} 
	}

	public static void downloadFile(String filePerforcePath, String destFolder) {
		try {
			IServer server = ServerFactory.getServer(ResourceUtil.getConfig().getProperty(Constants.P4PROTOCAL), null);
			server.connect();
			try {
				server.setUserName(ResourceUtil.getConfig().getProperty(Constants.P4USERNAME));
				server.login(ResourceUtil.getConfig().getProperty(Constants.P4PASSWORD));
				IClient client = server.getClient(ResourceUtil.getConfig().getProperty(Constants.P4WORKSPACE));
				if (client != null) {
					server.setCurrentClient(client);
					IServerInfo info = server.getServerInfo();
					logger.info("server address: " + info.getServerAddress() + "\n" + "server version" + info.getServerVersion() + "\n"
							+ "client address: " + info.getClientAddress() + "\n" + "client working directory: " + info.getClientCurrentDirectory()
							+ "\n" + "client name: " + info.getClientName() + "\n" + "user name: " + info.getUserName());
					List<IFileSpec> list = 
						client.sync(FileSpecBuilder.getValidFileSpecs(FileSpecBuilder.makeFileSpecList(new String[] {filePerforcePath})), true, false, false, false);



					logger.info("download file size: " + list.size());


					for (IFileSpec iFileSpec : list) {
						String pathVersionInfo = iFileSpec.toString();
						logger.info(iFileSpec);
					
												
						File file = new File(iFileSpec.toString());
						SaveFile(iFileSpec.getContents(true), file);
					}
				}
			} catch (Exception exc) {
				logger.error("", exc);
			}

			if (server != null) {
				server.disconnect();
			}
		} catch (ConnectionException e) {
			logger.error("", e);
		} catch (NoSuchObjectException e) {
			logger.error("", e);
		} catch (ConfigException e) {
			logger.error("", e);
		} catch (ResourceException e) {
			logger.error("", e);
		} catch (AccessException e) {
			logger.error("", e);
		} catch (RequestException e) {
			logger.error("", e);
		} catch (URISyntaxException e) {
			logger.error("", e);
		}
	}
分享到:
评论

相关推荐

    perforce软件配置管理使用说明

    ### Perforce软件配置管理使用说明 #### Perforce服务器配置说明 **Perforce**(简称P4)是一款功能强大的版本控制系统,被广泛应用于软件开发、游戏制作等行业。它能够有效地管理和控制源代码及其变更历史,支持...

    Perforce使用介绍

    Perforce是一款强大的软件配置管理工具,它基于可扩展的客户端/服务器架构,利用TCP/IP协议进行通信。Perforce的核心功能包括版本控制、工作空间管理、变更...了解和掌握Perforce的使用是提升软件开发流程效率的关键。

    Perforce P4V 入门

    本篇入门指南将介绍使用Perforce P4V的基本概念和步骤。 首先,需要注意的是,Perforce P4V软件及其文档的版权归属Perforce公司所有,用户可以自由下载和使用Perforce程序,但不得进行转售或重新发布。用户可以下载...

    Perforce服务器端配置说明[整理].pdf

    Perforce服务器端配置说明 Perforce是一种版本控制系统,它的服务器端配置是整个系统的...通过掌握本文档中的知识点,可以快速掌握Perforce服务器端的配置过程,从而更好地使用Perforce系统进行版本控制和协作开发。

    Perforce Streams Adoption Guide

    Perforce Streams Adoption Guide是一份专业的文档,旨在指导用户如何从Perforce传统的depot(仓库)迁移到使用stream(流)的工作模式。Perforce是一款广泛使用的版本控制系统,而stream模式是其较新的特性,用以...

    perforce vs. svn

    提供进一步的学习材料和资源,包括文档、教程和社区论坛,帮助用户更好地理解和使用Perforce和SVN。 通过以上详尽的比较,开发者和项目管理者可以基于项目的具体需求和团队的偏好,做出更明智的选择。无论是选择...

    p4-perforce repo.pdf

    P4-Perforce 版本工具使用指南 P4-Perforce 是一款版本控制系统,提供了强大的版本管理功能。该工具提供了多种命令供用户使用,涵盖了客户端工作空间、文件管理、变更列表、作业管理、分支和合并、管理等多个方面。...

    Perforce Official Training Course Slides - 3 Days PPT

    Perforce 官方培训课程旨在帮助用户理解并有效地使用 Perforce 进行版本控制操作。本课程分为三天,涵盖了从基础到高级的各种主题,以确保学员能够熟练掌握 Perforce 的核心功能。 在三天的课程中,首先会介绍 ...

    perforce培训.pdf

    perforce培训.pdf

    Perforce管理员向导(2008.2)-英文.pdf

    用户可以免费下载并使用Perforce软件及其文档,但不得出售或重新分发这些资源。 #### 二、许可条款与免责声明 Perforce软件和文档可在官方网站http://www.perforce.com上获取。虽然用户可以下载、打印、复制、编辑...

    perforce 原版学习资源

    Authored by Perforce's own VP of product technology, Practical Perforce is the ideal complement to the existing product manual, focusing less on the 'how" and more on the "why" and "when." The book is...

    Practical Perforce.chm

    Profile of Autodesk Practical Perforce

    matlab转换java代码-p4sl:适用于MATLAB和Simulink的Perforce插件

    2020.1已将默认TLS支持更改为TLSv1.2,以用于Perforce服务器2019.1或更高版本,可以使用JVM选项进行修改: java -DsecureSocketEnabledProtocols=TLSv1.2 已知局限性 对于JDK 7之前的Java版本,P4SL无法正确实现或...

    perforce-plugin:Jenkins Perforce插件

    总的来说,尽管 Jenkins Perforce 插件曾经是一个有效的工具,但为了最佳的性能和安全性,现在推荐使用纯 Java 的 p4-plugin。对于新项目,应该优先考虑使用更新的技术,以充分利用持续集成的最佳实践。在迁移过程中...

    Perforce Cheat Sheet

    本文档旨在提供一个Perforce的使用命令快速指南,涵盖其基本操作与核心功能。 #### 二、文件状态与流类型 在Perforce中,文件的状态与流类型对于理解工作流程至关重要。 - **不在仓库 (Not in Depot)** - 表示文件...

    LWP Perforce How to Use

    Introduction to the 2007 online edition of Perl & LWP

Global site tag (gtag.js) - Google Analytics