Как создать приложение Java с зависимостями вручную - PullRequest
0 голосов
/ 06 марта 2020

Я создал приложение java для kafka, используя maven. Я представляю код 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. Теперь я хочу создать тот же проект в среде без доступа inte rnet, и единственный способ установки программного обеспечения и приложений - это запросы в службу поддержки. Таким образом, для того, чтобы сделать запросы, возникло много вопросов. Но прежде чем продолжить, я представляю часть pom. xml.

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

Что IntelliJ делает, когда я пишу этот pom. xml загружает пакет потоков Kafka из inte rnet.

Вопросы

1) Где хранятся эти пакеты и где maven ищет пакеты локально?

2) Является ли репозиторий maven ищет, то же самое, что java хранит свои пакеты по умолчанию?

3) Если установлен maven, нормально ли он работает без доступа inte rnet, если все зависимости находятся в локальном хранилище?

4) Если я хотел создать java Приложение без какого-либо инструмента, как бы я обрабатывал эти зависимости (например, потоки Кафки)? (В случае, если Maven не может быть установлен).

1 Ответ

2 голосов
/ 06 марта 2020

1) Maven-пакеты хранятся в:

  1. Windows: C: \ Users \ .m2
  2. Linux: / home / user_name /. m2
  3. Ma c: /Users/user_name/.m2

Вы найдете пакет maven по следующему пути: /home/user_name/.m2/repository/org / commonjava / maven

2) Пакеты и плагины общего ядра java находятся по тому же пути, по которому смотрит Maven.

3) После загрузки пакетов вы можете работать без любой inte rnet доступ.

4) Вам необходимо использовать определенный инструмент для обработки этих зависимостей, это облегчит вашу работу. Если не maven, вы можете использовать Gradle, только если он поддерживает службу или зависимость, которую вы пытаетесь использовать. (Я не уверен, есть ли у Gradle некоторые библиотеки для обработки зависимостей Kafka).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...