我已经分叉了Confluent的Kafka Connect HDFS编写器,现在我想将这个jar的一个版本部署到我的本地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版本相同,但这里最重要的部分是:
<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
但这抱怨了家长:
〔错误〕无法在项目kafka connect hdfs上执行目标org.codehaus.mojo:版本maven插件:2.7:set(默认cli(:项目版本从父级继承。->[帮助1]
我甚至不在乎代码中的版本是否为5.0.0,我只想在我们的artifactory中部署到不同的版本。
我不是一个特立独行的专家,所以也许我错过了一些非常基本的线索,但所有的帮助都是受欢迎的。
所以有一些很好的建议,但最终对我来说,在我们的设置中最有效的一件事是为maven使用deploy:deploy-file
命令。
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
等(,但它有效,这才是最重要的:-(
您可以使用${revision}
参数指定版本。
为此,您需要在pom.xml中添加带有此变量的<version>
标记:
<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
文件。