如何将Talend打包的zip模块作为依赖添加到其他项目的pom.xml
Talend打包zip项目导入Maven项目的pom配置方案
Maven本身不支持直接将zip包作为依赖引入,你需要先把项目A的zip包解压到本地任意路径,比如解压到/your/local/path/projectA-unzip,解压后可以拿到核心的AA目录(存项目A主jar)、lib目录(存项目A所有依赖)和配置文件jobinfo.properties。
方案1:本地直接导入(适合个人本地开发用)
直接在项目B的pom.xml里配置依赖,指定本地jar的路径即可
配置项目A主jar依赖
<dependency> <groupId>com.talend.project</groupId> <!-- 可自定义,不重复即可 --> <artifactId>project-a-core</artifactId> <!-- 可自定义名称 --> <version>1.0.0</version> <!-- 对应项目A的实际版本 --> <scope>system</scope> <systemPath>/your/local/path/projectA-unzip/AA/项目A的jar包名称.jar</systemPath> </dependency>
批量导入项目A的所有依赖
如果需要把项目A lib目录下的全部依赖也导入项目B,可以用maven-dependency-plugin批量处理,配置如下:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.6.0</version> <executions> <execution> <id>copy-project-a-dependencies</id> <phase>initialize</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/classes</outputDirectory> <resources> <resource> <directory>/your/local/path/projectA-unzip/lib</directory> <includes> <include>*.jar</include> </includes> </resource> </resources> </configuration> </execution> </executions> </plugin> <!-- 打包时把system范围的依赖也打进最终包 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!-- 非SpringBoot项目替换为maven-assembly-plugin即可 --> <configuration> <includeSystemScope>true</includeSystemScope> </configuration> </plugin> </plugins> </build>
方案2:上传到Maven仓库(适合团队协作使用)
先把项目A的主jar和lib下的所有依赖都上传到团队私有Maven仓库或者本地Maven仓库,单个jar上传命令示例:
mvn install:install-file -Dfile=/your/local/path/projectA-unzip/AA/项目A的jar包名.jar -DgroupId=com.talend.project -DartifactId=project-a-core -Dversion=1.0.0 -Dpackaging=jar
lib下的每个jar都用上述命令上传,修改对应file路径、groupId、artifactId、version参数即可。上传完成后直接在项目B的pom里像普通依赖一样引入即可,不需要指定system路径:
<dependency> <groupId>com.talend.project</groupId> <artifactId>project-a-core</artifactId> <version>1.0.0</version> </dependency> <!-- 再逐个引入你上传到仓库的lib目录下的其他依赖即可 -->
注意事项
- 如果项目B运行项目A逻辑需要用到jobinfo.properties配置,要把这个文件放到项目B的resources目录下,或者启动时指定配置文件路径
- 如果项目A的lib目录下的依赖已经在项目B中引入,注意统一版本避免依赖冲突
内容的提问来源于stack exchange,提问作者ripunjoym1998
相关产品推荐
相关产品推荐

