如何安装阿帕奇骆驼?

How to install Apache Camel?

如何安装 Apache-Camel?

我刚刚开始阅读 'Camel in Action' 第二版。 在 1.2.1 节中,建议下载二进制分发版。 我从发布页面找到了这个 link: Release 2.24.1 但是我只能看到源代码下载。 我试图从源代码编译,但总是遇到错误。 您如何在 Ubuntu/Redhat/Fedora 上安装二进制文件? 或者我是否将 Apache-Camel 误解为您可以安装的库? 一定要用maven编译吗?

您真正需要的是下载 Apache Camel 的二进制文件。获得它们的最佳方法是利用 maven (https://maven.apache.org/install.html) 和 GitHub 的现有项目并开始使用。

您可以前往以下link:https://github.com/dilipsundarraj1/TeachApacheCamel。您可以将项目下载为 zip 文件或克隆项目(您需要在计算机上安装 git)。

下载/克隆项目后,使用转到其中一个项目:learncamel-simple-file 并在命令提示符 中打开文件夹。

命令提示符 运行命令mvn dependency:resolve。 (我假设你的机器上安装了 maven 和 java)。此命令将在文件夹中下载所有必需的二进制文件:c:\user\<userid>\.m2\repository,其中用户 ID 特定于您的计算机。

希望对您有所帮助。

驼色,Java-projects 和 build-tools

Apache Camel 与任何其他 Java 库或框架一样工作,这意味着为了使用该框架,您必须将其 java 二进制文件(即 .jar 文件)包含到您的项目中作为依赖项。现在为了让事情变得更简单,大多数开发人员使用 MavenGradle 来创建、管理和构建他们的 java 项目。

从这两个中我会推荐 Maven 因为它似乎是 Camel 开发人员的首选选项,大多数示例(包括官方 camel 站点中的示例)都在使用它。按照官方 how to install maven 指南安装 maven。

Maven 原型

要创建示例 camel 项目,您可以使用 maven 原型,它们基本上是可用于创建各种类型的新项目的项目模板。 如果您正在阅读 Camel in Action,您最好在项目中使用 Java 开发工具包版本 8 的 Camel 版本 2.x.x。 Camel 3.x.x 非常相似,因此在使用 2.x.x.

学习基础知识后应该很容易学习

安装 maven 后,您可以使用 Java IDE(即 IntelliJ、VSCode、Eclipse 或 Netbeans)从具有 groupId 的 maven 原型创建项目: org.apache.camel.archetypes artifactId: camel-archetype-java and version: 2.25.4

或者使用maven命令行命令:

# Create new camel java project for Camel version 2.25.4
mvn archetype:generate -DarchetypeGroupId="org.apache.camel.archetypes" -DarchetypeArtifactId=camel-archetype-java -DarchetypeVersion="2.25.4"

骆驼项目

新项目应包含项目文件 pom.xml,您可以在其中指定项目的所有依赖项。 camel-archetype-java 应该在 pom.xml 的依赖项部分列出以下依赖项。

<dependencies>

    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-core</artifactId>
    </dependency>

    <!-- logging -->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
      <scope>runtime</scope>
    </dependency>

    <!-- testing -->
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

camel-archetype-java 原型 Myroutebuilder.java 中的示例路线对于初学者来说相当复杂。 Hello world on a timer 通常是一种更简单的测试,用于查看事情是否正常。

package com.example;

import org.apache.camel.LoggingLevel;
import org.apache.camel.builder.RouteBuilder;

public class MyRouteBuilder extends RouteBuilder {

    public void configure() {

        // from("file:src/data?noop=true")
        //     .choice()
        //         .when(xpath("/person/city = 'London'"))
        //             .log("UK message")
        //             .to("file:target/messages/uk")
        //         .otherwise()
        //             .log("Other message")
        //             .to("file:target/messages/others");

        from("timer:timerName?period=3000")
            .routeId("helloWorldTimer")
            .log(LoggingLevel.INFO, "Hello world");
    }
}

从 archetype 生成的项目带有 exec-maven-plugin,它允许您 运行 带有 mvn exec:java

的项目

Java 开发包 - JDK

如果您使用 JDK 11 而不是 JDK 8,则必须稍微修改 maven-compiler-plugin 配置。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.0</version>
    <configuration>
        <!-- 
        <source>1.8</source>
        <target>1.8</target> 
        -->
        <source>11</source>
        <target>11</target>
    </configuration>
</plugin>

如果您安装了 JDK 的多个版本,则必须配置 IDE 以便为项目使用正确的版本。使用 IntelliJ,您可以配置 project structure settings.

项目使用的 JDK

使用 VSCode 你需要 JDK 11 和 JDK 8 因为 VSCode Java 扩展需要 JDK 11 到 运行.

OpenJDK 的示例 settings.json 条目:

"java.configuration.runtimes": [
    {
        "name": "JavaSE-11",
        "path": "C:\Program Files\AdoptOpenJDK\jdk-11.x.x.xxx-hotspot",
        "default": true
    },
    {
        "name": "JavaSE-1.8",
        "path": "C:\Program Files\RedHat\java-1.8.0-openjdk-1.8.0.xxx-x",
    }
],
"java.home": "C:\Program Files\AdoptOpenJDK\jdk-11.x.x.xxx-hotspot"

您可能还想设置路径变量,以便 java -version returns 来自 command-line.

的正确版本