手動で依存関係を持つJavaアプリケーションを作成する方法

ChrisGav:

私は、Mavenを使用してカフカのためのJavaアプリケーションを作成しました。私は、Javaコードを提示します:

import org.apache.kafka.clients.consumer.ConsumerConfig;
import org.apache.kafka.streams.KafkaStreams;
import org.apache.kafka.common.serialization.Serdes;
import org.apache.kafka.streams.StreamsBuilder;
import org.apache.kafka.streams.StreamsConfig;
import org.apache.kafka.streams.kstream.Consumed;
import org.apache.kafka.streams.kstream.KStream;
import org.apache.kafka.streams.kstream.Produced;

import java.util.Properties;

public class pega {
    public static void main(String[] args) {
        Properties properties = new Properties();
        properties.put(StreamsConfig.APPLICATION_ID_CONFIG, "first-app");
        properties.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
        properties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
        properties.put(StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIG, Serdes.String().getClass());
        properties.put(StreamsConfig.DEFAULT_VALUE_SERDE_CLASS_CONFIG, Serdes.String().getClass());
        properties.put(StreamsConfig.COMMIT_INTERVAL_MS_CONFIG, 1000);

        StreamsBuilder builder = new StreamsBuilder();

        KStream<String, String> order = builder.stream("input-topic", Consumed.with(Serdes.String(),Serdes.String()))
                .selectKey((k,v) -> v);
        order.to("output-topic", Produced.with(Serdes.String(),Serdes.String()));

        KafkaStreams streams = new KafkaStreams(builder.build(), properties);
        streams.start();

        System.out.println(streams.toString());

        Runtime.getRuntime().addShutdownHook(new Thread(streams::close));
    }
}

私はこのプロジェクトを作成している方法は、IntelliJのIDEを使用することです。今私は、インターネット回線、ソフトウェアやアプリケーションをインストールするためには、保守チームへの要求を介している唯一の方法がないと環境の中で、同じプロジェクトを作成します。だから、要求を行うためには、多くの疑問が生じています。私が進む前に、しかし、私はのpom.xmlの一部を提示します。

...
<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-streams</artifactId>
    <version>2.3.1</version>
</dependency>
...

私はこれのpom.xmlがカフカは、インターネットからパッケージをダウンロードしているストリームの書き込み時にIntelliJのは何やっています。

質問

1)ここで、これらのパッケージが保存され、ローカルパッケージを探しているところをMavenのですか?

2)のmavenをしようとしていることをリポジトリ、Javaはデフォルトのパッケージが格納されているのと同じですか?

Mavenのがインストールされている場合、すべての依存関係がローカルリポジトリ上にある場合3)、それは、インターネット接続なしで罰金を動作しますか?

4)私はカフカストリームのように、私は(それらの依存関係を処理する方法を、任意のツールなしでJavaアプリケーションを作成したい場合)?(ケース達人にインストールすることができません)。

Fatemaサーガル:

1)Mavenのパッケージが中に格納されます。

  1. Windowsの場合:C:\ Users \ユーザー.m2
  2. Linuxの場合:/home/user_name/.m2
  3. Macの場合:/Users/user_name/.m2

あなたは次のパスでMavenのパッケージを見つける:/home/user_name/.m2/repository/org/commonjava/maven

2)共通のコアJavaパッケージやプラグインはMavenのはに見えるのと同じパスです。

パッケージがダウンロードされたら3)あなたは、任意のインターネット接続なしで動作することができます。

4)あなたはそれがあなたの仕事が楽になります、それらの依存関係を処理するために、特定のツールを使用する必要があります。Mavenのない場合は、それはあなたが使用しようとしていることをサービスまたは依存関係をサポートしている場合にのみのGradleを使用することができます。(私はGradleのはカフカの依存関係を処理するためのいくつかのライブラリを持っているかどうかわかりません)。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=27367&siteId=1