我有一个具有多个pom层的微服务项目。我使用“org.codehaus.mojo: rpm-maven-plugin: 2.1.1”插件为每个服务生成rpm。我需要将其设置为生成一个rpm,并将所有这些rpm作为所需的依赖项。
在父pom中,我添加了设置为无源,但需要两个rpm包。当我向父级添加相同的设置时,它失败了,我不明白我缺少了什么。
例如:项目组--ProjectCommon--Project1--Project2
所以ProjectCommon、Project1和Project2都有自己的rpm生成并部署到我们的存储库中,以及它们的pom和war。Project1和Project2需要公共的,这是有效的。我想做的是把它们放在父pom中,这样它就会构建一个需要子节点的rpm。然后我可以安装1个父rpm,而不是安装每个rpm,它会拉/安装所有其他的。
我应该补充一点,在这个之上有两个级别的父pom,因为我们将服务分组为业务服务和数据访问服务。然后还将服务从其他组件(如gui/etc)中分组到一起,这些组件有自己的pom。但是如果我让它与直接的父pom一起工作,那么它也应该适用于它们的父pom。
这是我添加到父pom的内容:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>rpm-maven-plugin</artifactId>
<version>2.1.1</version>
<executions>
<execution>
<id>attach-rpm</id>
<goals>
<goal>attached-rpm</goal>
</goals>
<configuration>
<sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
<group>${rpm.group}</group>
<requires>
<require>project1 > ${project.version}</require>
<require>project2 > ${project.version}</require>
</requires>
<mappings>
<mapping>
<directory>${rpm.directory}</directory>
<filemode>$rpm.permissions}</filemode>
<username>${rpm.user}</username>
<groupname>${rpm.usergroup}</groupname>
</mapping>
</mappings>
</configuration>
</execution>
</executions>
</plugin>
以下是其中一个孩子:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>rpm-maven-plugin</artifactId>
<version>2.1.1</version>
<executions>
<execution>
<id>attach-rpm</id>
<goals>
<goal>attached-rpm</goal>
</goals>
<configuration>
<sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
<group>${rpm.group}</group>
<requires>
<require>weblogic</require>
<require>project1 > ${project.version}</require>
</requires>
<mappings>
<mapping>
<directory>${rpm.directory}/config</directory>
<filemode>$rpm.permissions}</filemode>
<username>${rpm.user}</username>
<groupname>${rpm.usergroup}</groupname>
<sources>
<source>
<location>${project.build.directory}/${project.build.finalName}.${project.packaging}</location>
</source>
</sources>
</mapping>
</mappings>
</configuration>
</execution>
</executions>
</plugin>
以下是错误:
[错误]无法执行目标组织。科德豪斯。mojo:rpm-maven插件:2.1.1:attached-rpm(attached-rpm)on-project-project-business-parent:rpm-build-execution返回:“1”executing“/bin/sh-c-cd”“/workspace/project-pom/services/business/target/rpm/project-business-parent/SPECS”
编辑:使用“mvn-X install”添加了更多详细错误。谢谢你jDevelopment!
最后注意到了$rpm。权限}缺少{字符。哦!
更改为${rpm.permissions},一切正常!
我是使用maven和jenkins的新手。我正在尝试从父pom继承到子pom的依赖关系,它显示以下错误: 这是我的父母POM: 这是我的孩子波姆: 这是我如何尝试从父POM继承子POM中的依赖关系: 如果我在子POM中放置这些相同的依赖项,它会完美地工作。我使用jenkins在nexus中进行安装和部署。我使用的是maven-3.3.9。在jenkins中,我阅读了git中两个不同maven项目中
我有一个带有子pom B、C和D的父pom A,在B、C和D中,我有相同类型的依赖项。 ie父Pom 儿童Pom 到目前为止,我已经尝试过编辑插件surefire,当试图排除子pom的测试范围时,它不起作用。 我的问题是,是否有一种方法可以将概要文件添加到父pom中,以排除所有子pom的类型测试jar的所有依赖项。谢谢
当我使用mvn install构建工件时,我看到JAR在我的.m2文件夹中构建,但是Project.version没有替换为实际版本,即1.0-Snapshot。 > 每个工件的.m2存储库中的父pom和/或子pom是否具有指定的版本,或者是否为Project.version 我是否应该在父POM中指定Project.Version作为属性。maven文档说明Project.version可由De
问题内容: 我是使用Maven和Jenkins的新手。我试图继承从父pom到子pom的依赖关系,它显示以下错误: 这是我的父母POM: 这是我的孩子POM: 这是我尝试从父POM继承子POM中的依赖项的方法: 如果我将相同的依赖项放在子POM中,则效果很好。我使用jenkins在nexus中进行安装和部署。我正在使用maven-3.3.9。在詹金斯,我从git中阅读了两个不同的Maven项目中的父
我有一个父级pom a和子级pom B、C和D。在B、C和D中,我有相同类型的依赖关系。 ie母Pom
使用可以用于基于的遗留用例,但也可以测试我们正在迁移的未来用例:。 我是否可以在每次修改POM时实现以下反应器构建?或者,类似的东西?或者,Maven仅仅是这个用例的错误工具吗? 理想情况下,我希望在一个反应器构建中实现所有功能,每个编译并与每个继承的依赖项一起使用。我知道这会使我的Maven repo处于不希望的状态,但至少我可以将反应器构建插入到我的CI,并确保我的构建在依赖平台上运行。 注意