Укажите версию при развертывании на нексусе из maven - PullRequest
0 голосов
/ 19 ноября 2018

Я разветвился Устройство записи HDFS Kafka Connect от Confluent , и теперь я хотел бы развернуть версию этого фляги на моем локальном Nexus.

mvn clean deploy Работает как шарм и разворачивает банку.

https://[nexus]/repository/releases/io/confluent/kafka-connect-hdfs/5.0.0/kafka-connect-hdfs-5.0.0.jar

Пока все хорошо, но проводить различие между слитыми версиями и моей собственнойРазвертывание Я хотел бы изменить версию сборки на что-то вроде 5.0.0-1 или около того (желательно имя тега при нажатии, но это шаг 2)

Pom.xml в основном совпадает с 5.0.0-post release, но здесь самые важные части:

    <parent>
        <groupId>io.confluent</groupId>
        <artifactId>kafka-connect-storage-common-parent</artifactId>
        <version>5.0.0</version>
    </parent>

    <artifactId>kafka-connect-hdfs</artifactId>
    <packaging>jar</packaging>
    <name>kafka-connect-hdfs</name>
    <organization>
        <name>Confluent, Inc.</name>
        <url>http://confluent.io</url>
    </organization>
    <url>http://confluent.io</url>
    <description>
        A Kafka Connect HDFS connector for copying data between Kafka and Hadoop HDFS.
    </description>
...
<dependencies>
    ...
    <dependency>
        <groupId>io.confluent</groupId>
        <artifactId>kafka-connect-storage-common</artifactId>
        <version>${confluent.version}</version>
    </dependency>
    <dependency>
        <groupId>io.confluent</groupId>
        <artifactId>kafka-connect-storage-core</artifactId>
        <version>${confluent.version}</version>
    </dependency>
    ...
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>io.confluent</groupId>
            <version>0.10.0</version>
            <artifactId>kafka-connect-maven-plugin</artifactId>
...

Итак, сначала я добавил <version> теги в pom.xml, но он начал использовать это как значение по умолчаниюдля всех confluent.version и жаловался, что не может найти, например: https://[nexus]/repository/releases/io/confluent/kafka-connect-storage-hive/5.0.0-1/kafka-connect-storage-hive-5.0.0-1.pom

Далее я попробовал плагин версии от maven mvn versions:set -DnewVersion=5.0.0-1 clean deploy

Но этопожаловался на родителя:

[ОШИБКА] Не удалось выполнить цель org.codehaus.mojo: names-maven-plugin: 2.7: установить (default-cli) для проекта kafka-connect-hdfs: Projectверсия наследуется от родителя.-> [Помощь 1]

Мне даже все равно, будет ли версия 5.0.0 в коде, я просто смотрю, чтобы развернуть другую версию в нашей артефакте.

Я не эксперт по Maven, поэтому, может быть, мне не хватает какой-то очень простой подсказки, но любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Итак, было несколько хороших предложений, но, в конце концов, единственное, что лучше всего помогло мне в нашей настройке, - это использовать команду deploy:deploy-file для maven.

mvn deploy:deploy-file \
-Dfile=target/kafka-connect-hdfs-5.0.0.jar \
-DrepositoryId=[nexus id] \
-Durl=[nexus url] \
-Dversion=$TAG \
-DgroupId=io.confluent \
-DartifactId=kafka-connect-hdfs

Основным недостатком было то, что мне пришлось заново задавать параметры, которые уже присутствовали в pom.xml (artifactId, groupId, т. Д.), Но это работает, и вот что считается: -)

0 голосов
/ 29 ноября 2018

Вы можете указать версию с параметром ${revision}.

Для этого вам нужно добавить тег <version> с этой переменной в pom.xml:

<artifactId>kafka-connect-hdfs</artifactId>
<version>5.0.0-${revision}</version>
<packaging>jar</packaging>

Изатем предоставьте это команде maven.Например, mvn clean package -Drevision=01 создаст kafka-connect-hdfs-5.0.0-01.jar файл.

...