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中的自定义工作的主要内容,如果未能解决你的问题,请参考以下文章

Flash Builder如何自定义工作目录

百度地图聚合功能自定义聚合文字

表值函数--自定义工作日历

如何处理 Android 中远程视图的异常(自定义小部件或自定义通知)?

SqlServer如何用Sql语句自定义聚合函数

Tableau DesktopTableau如何将示例工作簿替换为自定义工作簿?(windows版本)