Maven中的自定义工作
Posted
技术标签:
【中文标题】Maven中的自定义工作【英文标题】:customized job in maven 【发布时间】:2017-08-11 09:44:22 【问题描述】:我从 Talend 生成了 jar,我想在 maven 项目中使用它们。经过一些研究,我知道我必须使用以下方法在本地 maven 存储库中安装这个 jar: mvn install:install-file -Dfile=non-maven-proj.jar -DgroupId=some.group -DartifactId=non-maven-proj -Dversion=1 -Dpackaging=jar 然后添加一个依赖:
<dependency>
<groupId>....</groupId>
<artifactId>...</artifactId>
<version>...</version>
</dependency>
但我不知道在 groupId、artifactId 和 version 标记中准确放置什么。请帮忙
【问题讨论】:
【参考方案1】:转到 maven 存储库 https://mvnrepository.com 并搜索您的依赖项。单击版本号,它将显示您的 talend 的完整依赖项标签。例如
<!-- https://mvnrepository.com/artifact/org.talend.esb.job/org.talend.esb.job.api -->
<dependency>
<groupId>org.talend.esb.job</groupId>
<artifactId>org.talend.esb.job.api</artifactId>
<version>6.3.1</version>
【讨论】:
它不起作用,创建的工作是个人的,我将其命名为 BigJob 但它是从 Talend 生成的,添加该依赖项后服务器仍然不知道它并抛出异常 java.lang。 ClassNotFoundException:xlstopostgres.bigjob_0_1.BigJob【参考方案2】:顺便说一句,如果您只是在本地使用它,那么您可以使用您喜欢的任何组 ID、工件 ID 和版本安装 jar。只需确保在项目 POM 的依赖项中使用相同的内容即可。 但是,这不是推荐的方法,但如果您不确定 maven 坐标(组 ID、工件 ID 和版本),您可以使用上面给出的 hack。
【讨论】:
【参考方案3】:您应该指定这个“Talend”是什么? 这里简单介绍一下maven pom结构:maven pom doc
groupId:这在组织或项目中通常是唯一的。
artifactId:artifactId 通常是项目已知的名称。
版本:是要使用哪个包的最后一条规范。
您可以在 maven 存储库页面上找到 mvn 依赖项的规范。以下是 Talend ESB jar(最新版本)的示例:
<!-- https://mvnrepository.com/artifact/org.talend.esb.job/org.talend.esb.job.api -->
<dependency>
<groupId>org.talend.esb.job</groupId>
<artifactId>org.talend.esb.job.api</artifactId>
<version>6.3.1</version>
</dependency>
【讨论】:
以上是关于Maven中的自定义工作的主要内容,如果未能解决你的问题,请参考以下文章