什么是 Openstack4j ?

OpenStack的官方SDK是基于Python语言的,对于Java程序猿来说,将Python翻译过来未免麻烦。在Openstack官方的Wiki中(戳我直达),我们可以看到各路大神早已设立了各种语言的三方SDK开源项目,其中Java语言下有:

  • Apache jclouds is an open source library that helps you get started in the cloud and utilizes your Java or Clojure development skills. The jclouds API gives you the freedom to use portable abstractions or cloud-specific features.
  • OpenStack4j A fluent Java OpenStack API.
  • OpenStack Java SDK is a Java binding for the OpenStack APIs.
  • User Registration Service is a server side user registration service based on openstack-java-sdk.
  • Java OpenStack Storage aka JOSS is a dedicated Java binding for accessing the Swift REST API.

Openstack4j 赫然在列,它是一个用于管理OpenStack的开源库,提供API让你完全控制OpenStack的各种服务。

开始部署

打开 Eclipse,新建一个“Maven Project”,然后在第二页选择 “maven-archetype-quickstart”进入下一步:

然后输入 Group Id 和 Artifact Id,点击 Finish:

IDE 通过上述设置,帮助我们建立了一个快速开始的 maven 项目,接着我们要修改 pom.xml,下载 Openstack4j 以及所有的依赖项。

编辑 pom.xml,加入以下代码:

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.pacesys</groupId>
<artifactId>openstack4j</artifactId>
<version>2.0.8</version>
<classifier>withdeps</classifier>
</dependency>
<!-- <dependency>
<groupId>org.pacesys</groupId>
<artifactId>openstack4j</artifactId>
<version>2.0.9-SNAPSHOT</version>
</dependency> -->
</dependencies>

保存后,右键点击项目名称,编译为 Maven install,当 Console 中输出:

[INFO] BUILD SUCCESS

说明项目编译成功,然后按照对应的 API 手册开始编写源代码运行即可。

以笔者的项目为例,打开 App.java,在 main 函数中添加代码:

System.out.println("Version 2 Authentication!");
OSClient os = OSFactory.builder()
.endpoint("http://10.3.30.145:35357/v2.0")
.credentials("admin","admin")
.tenantName("admin")
.authenticate();
System.out.println("Authentication Complete");

运行成功即完成 Openstack 的认证过程。

更多有关 Openstack4j 的信息请参阅官方网站

Openstack4j 在 Maven 中的构建的更多相关文章

  1. Java 中三大构建工具:Ant、Maven和Gradle

    Java世界中主要有三大构建工具:Ant.Maven和Gradle 目前:Ant已经销声匿迹.Maven也没落了,而Gradle的发展则如日中天. Maven的主要功能主要分为5点,分别是依赖管理系统 ...

  2. SpringCloud核心教程 | 第二篇: 使用Intellij中的maven来快速构建Spring Cloud工程

    spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运行环 ...

  3. 理解Maven中的SNAPSHOT版本和正式版本

    Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制.在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个 ...

  4. MAVEN学习-第一个Maven项目的构建

    MAVEN安装成功之后就可以进行项目的构建和管理了: 为什么要用maven进行项目的构建和管理? 对于初学者来说一个最直接的也是最容易里的优点在于JAR包的管理,相对于以前开发一个项目的时候我们需要用 ...

  5. 如何在maven中添加jar包

    Maven 中央仓库地址: 1. http://www.sonatype.org/nexus/ 2. http://mvnrepository.com/ (本人推荐仓库) 3. http://repo ...

  6. 用 Maven 做项目构建

    转自:http://www.ibm.com/developerworks/cn/java/j-lo-maven/index.html 本文将介绍基于 Apache Maven 3 的项目构建的基本概念 ...

  7. Maven中pom.xml文件的配置

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  8. Maven中基于POM.xml的Profile来动态切换配置信息

    [转载:https://blog.csdn.net/blueheart20/article/details/52838093] 1. Maven中的profile设置 Maven是目前主流的项目代码结 ...

  9. Maven中的配置文件

    <span style="padding:0px; margin:0px"><project xmlns="http://maven.apache.or ...

随机推荐

  1. asp.net(C#)网站发布后 Global.asax 里 Application_Error 不执行的问题

    现象 在 Global.asax 用 Application_Error 捕捉了http的404,500等错误,在本机测试正常,发布后无效,几经周折终于解决了... 程序是这样设计的 Applicat ...

  2. Spring自动注入properties文件

    实现spring 自动注入属性文件中的key-value. 1.在applicationContext.xml配置文件中,引入<util />命名空间. xmlns:util=" ...

  3. knockoutJS学习笔记08:表单域绑定

    前面的绑定都是用在基本标签上,这章主要讲表单域标签的绑定. 一.value 绑定 绑定标签:input text.textarea. <p>用户名:<input type=" ...

  4. 谈谈RPC中的异步调用设计

    RPC(远过程调用)在分布式系统中是很常用的基础通讯手段,核心思想是将不同进程之间的通讯抽象为函数调用,基本的过程是调用端通过将参数序列化到流中并发送给服务端,服务端从流中反序列化出参数并完成实际的处 ...

  5. css一些小的效果

    1.http://www.shejidaren.com/creative-dashboard-designs.html 网址:  

  6. java学习指南

    @Override public BaseResponse selectListPage(PageData page, Object obj) { BaseResponse response = ne ...

  7. Poisson泊松分布

    PMF 若随机变量\(K\)的概率质量函数PMF为 \[ P(K = k) = e^ {-\lambda} \frac {\lambda^k}{k!} \] 则称:\(K \sim Poisson(\ ...

  8. WPF实现图片倒影

    比较简单,主要用到ScaleTransfrom类和VisualBrush类 <Window x:Class="实现图片倒影的方式.MainWindow" xmlns=&quo ...

  9. Python * 和 ** 参数问题

    Problem def calcuate(*keys) def calcluate(**keys) Slove *: 用来传递人一个无名字的参数,这些参数会以一个Tuple的形式来访问. **: 用来 ...

  10. <<< 将一个rar格式的文件变成一张jpg图片,按照后缀来选择打开他的模式

    把一个压缩格式和一张图片合成,按照后缀来判断他打开是图片还是解压文件,后缀是jpg打开的就是一张图片,后缀是rar打开的就是一个压缩包,里面存放你放的东西   :例如(秘密) 准备一张图片,test. ...