如何在jenkins中构建多模块maven项目
我的项目结构如下:如何在jenkins中构建多模块maven项目,maven,jenkins,Maven,Jenkins,我的项目结构如下: ProjectParent - pom.xml ProjectApp -pom.xml ProjectAPI -pom.xml ProjectModels -pom.xml ProjectServices -pom.xml Etc.. ProjectModels/ProjectsServices是ProjectAPI/ProjectApp中的依赖项 我是否应该在Jenkins内部创建单独的作业来分别构建每个模块 我为ProjectAPP创
ProjectParent
- pom.xml
ProjectApp
-pom.xml
ProjectAPI
-pom.xml
ProjectModels
-pom.xml
ProjectServices
-pom.xml
Etc..
ProjectModels/ProjectsServices
是ProjectAPI/ProjectApp
中的依赖项
ProjectAPP
创建了一个作业,但出现以下错误(已将目标和操作设置为“清洁安装”:[信息]------------------------------------------------------------------------ [信息]正在构建myproject应用程序0.0.1-SNAPSHOT [信息]------------------------------------------------------------------------
Downloading: http://maven.springframework.org/snapshot/com/myproject/myproject-common-config/0.0.1-SNAPSHOT/myproject-common-config-0.0.1-SNAPSHOT.pom
[WARNING] The POM for com.myproject:myproject-common-config:jar:0.0.1-SNAPSHOT is missing,
没有可用的依赖项信息
下载:
[警告]com.myproject:myproject entities:jar:0.0.1-SNAPSHOT的POM丢失,否
可用的依赖项信息
下载:
[警告]com.myproject:myproject服务:jar:0.0.1-SNAPSHOT的POM丢失,否
可用的依赖项信息
下载:
[警告]com.myproject:myproject persistence:jar:0.0.1-SNAPSHOT的POM丢失,否
可用的依赖项信息
下载:
......
org.apache.maven.lifecycle.LifecycleExecutionException:未能对项目myproject app执行目标:无法解析依赖项
对于project com.myproject:myproject应用程序:war:0.0.1-SNAPSHOT:The
无法解析以下工件:
com.myproject:myproject公共配置:jar:0.0.1-SNAPSHOT,
com.myproject:myproject实体:jar:0.0.1-SNAPSHOT,
com.myproject:myprojectservices:jar:0.0.1-SNAPSHOT,
com.myproject:myproject persistence:jar:0.0.1-SNAPSHOT:找不到
artifact com.myproject:myproject公共配置:jar:0.0.1-SNAPSHOT in
org.springframework.maven.snapshot
()
项目父Pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.myproject</groupId>
<artifactId>myproject-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>myproject-entities</module>
<module>myproject-services</module>
<module>myproject-persistence</module>
<module>myproject-app</module>
<module>myproject-merchant</module>
<module>myproject-common-config</module>
<module>myproject-api</module>
</modules>
<dependencyManagement>
<dependencies>
...
</dependencies>
</dependencyManagement>
<repositories>
...
</repositories>
<build>
...
</build>
<properties>
...
<myproject-entities-version>0.0.1-SNAPSHOT</myproject-entities-version>
<myproject-services-version>0.0.1-SNAPSHOT</myproject-services-version>
<myproject-persistence-version>0.0.1-SNAPSHOT</myproject-persistence-version>
</properties>
</project>
4.0.0
com.myproject
我的项目父项
0.0.1-快照
聚甲醛
我的项目实体
我的项目服务
myproject持久性
myproject应用程序
我的项目商人
myproject公共配置
myproject api
...
...
...
...
0.0.1-快照
0.0.1-快照
0.0.1-快照
ProjectApp Pom
<?xml version="1.0"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.myproject</groupId>
<artifactId>myproject-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>myproject-app</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>myproject-app</name>
<url>http://maven.apache.org</url>
<dependencies>
...
<dependency>
<groupId>com.myproject</groupId>
<artifactId>myproject-common-config</artifactId>
<version>${myproject-common-config}</version>
</dependency>
<dependency>
<groupId>com.myproject</groupId>
<artifactId>myproject-entities</artifactId>
<version>${myproject-entities-version}</version>
</dependency>
<dependency>
<groupId>com.myproject</groupId>
<artifactId>myproject-services</artifactId>
<version>${myproject-services-version}</version>
</dependency>
<dependency>
<groupId>com.myproject</groupId>
<artifactId>myproject-persistence</artifactId>
<version>${myproject-persistence-version}</version>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<myproject-common-config>0.0.1-SNAPSHOT</myproject-common-config>
<myproject-entities-version>0.0.1-SNAPSHOT</myproject-entities-version>
<myproject-services-version>0.0.1-SNAPSHOT</myproject-services-version>
<myproject-persistence-version>0.0.1-SNAPSHOT</myproject-persistence-version>
</properties>
</project>
4.0.0
com.myproject
我的项目父项
0.0.1-快照
myproject应用程序
战争
0.0.1-快照
myproject应用程序
http://maven.apache.org
...
com.myproject
myproject公共配置
${myproject公共配置}
com.myproject
我的项目实体
${myproject entities版本}
com.myproject
我的项目服务
${myproject services版本}
com.myproject
myproject持久性
${myproject持久化版本}
UTF-8
0.0.1-快照
0.0.1-快照
0.0.1-快照
0.0.1-快照
我是否使用了错误的目标?我是否需要链接多个命令?例如,首先构建其他模块 我用的是Maven 3 注意:我针对ParentProject Pom将目标更改为“clean install”,并且所有内容都正确构建
谢谢问题在于,您不能仅为
ProjectApp
模块创建项目,因为它依赖于ProjectApp
父模块下的其他模块。如果您不将这些模块部署到maven存储库,maven将无法在存储库或构建反应器中找到它们
相反,您应该为父级创建作业。这将构建必要的模块
当您在
ProjectApp
工作时,您也可以使用该选项,但我对此没有任何经验。也有同样的问题,SpaceTrucker的回答帮助了我
因此,我只运行以下内容:
../ProjectParent$mvn-am-pl ProjectApp test
您是否在parent pom
部分指定了所有其他模块?如果是,这应该可以工作。如果不是,您应该这样做。您可以为ProjectApp
发布的pom.xml
吗?谢谢SpaceTrucker。我已经按照您的建议为家长创建了作业尊敬的。