Maven没有提取正确的JClouds-Chef依赖树

时间:2014-07-02 18:02:12

标签: java maven chef pom.xml jclouds

我正在尝试弄清楚如何使用JClouds-Chef库来配置VM。根据他们的Installation Guide,我可以创建一个看似如下的pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <properties>
        <jclouds.version>1.7.3</jclouds.version>
    </properties>
    <groupId>com.mycompany.app</groupId>
    <artifactId>my-app</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>org.apache.jclouds</groupId>
            <artifactId>jclouds-all</artifactId>
            <version>${jclouds.version}</version>
        </dependency>
    </dependencies>
</project>

运行mvn dependency:copy-dependencies,它应该下载JClouds-Chef所需的所有JAR。

所以我做了这个,然后将所有JAR(有一个很多)添加到我的项目的构建路径中。然后我尝试创建ChefContext实例(就像他们的教程中显示的例子一样):

ChefContext context = null;

Eclipse无法解析/找到ChefContext类。在扫描了Maven下载的JAR之后,果然,ChefContext没有出现在任何地方!

所以我问:**我需要具备哪些步骤才能获得构成JClouds-Chef及其所有依赖项的所有JAR?*

2 个答案:

答案 0 :(得分:2)

您必须明确地将chef添加到您的依赖项节:

<dependency>
  <groupId>org.apache.jclouds.api</groupId>
  <artifactId>chef</artifactId>
  <version>${jclouds.version}</version>
</dependency>

您可以在jclouds-examples中查阅chef-basics以获取工作示例。

答案 1 :(得分:2)

添加该依赖项应该足够了。或者,如果要使用Enterprise Chef特定功能,则可以添加以下功能:

<dependency>
    <groupId>org.apache.jclouds.provider</groupId>
    <artifactId>enterprisechef</artifactId>
    <version>${jclouds.version}</version>
</dependency>

这是您需要配置的唯一内容。 jclouds将负责在您提供的节点中安装Chef和所有必需的依赖项。