我有一个应该为几个目标平台构建的工件:
不幸的是,由于缺乏交叉编译器,不可能一次性创建工件的所有版本。
换句话说,目标是在存储库中有这样的东西
请注意,版本是同步的。如何做到这一点?
问题是,每次构建之后,发布过程都会升级pom.xml的版本。因此,通过在各种平台上连续构建,我可以实现
但这不是我要找的。
我可以
但是,以适当的顺序触发各种平台上的发布过程的责任在于我。有什么办法能帮我吗?
你有什么意见建议?
谢谢
PS。请注意,这不是一个关于如何组织成模块的问题。它是关于如何在多个平台上同步单个工件的发布过程。
发布于 2012-08-01 05:10:55
你找到解决办法了吗?很高兴知道我不是唯一一个和Maven吵架的人:-)
不管怎样,
是否允许将发布的版本部署到nexus?我在想,你可以这么做:
做一个"mvn发行版:准备发布:执行“从一个窗口机器-这应该得到工件-1.0.1-windows.zip到nexus。
2-从源代码管理检查工件-1.0.1标记
3-做一个来自linux和arm11的"mvn部署“(不管是什么:P) --这也会让-linux.zip和-arm11.zip进入nexus。
不过,我相信根据nexus是如何配置的,它不会让您用相同的GAV重新部署任何东西(即使分类器是不同的)
发布于 2012-04-05 12:45:28
正如我所看到的,您使用linux、windows或arm11等分类器(工件的文件名后缀)来区分针对特定平台的各种工件版本。因此,如果您创建由Maven管理的多模块项目,其中模块将是具有相同groupId、相同artifactId、相同version (可能是从其共同父级继承的)的工件,但具有不同的classifier,那么您将得到您想要的东西。在这种情况下,您总是发布您的多模块POM (通常它也是其模块的共同父级)同时发布所有模块。假设相同版本的所有模块-策略(在这里似乎非常合适),您基本上可以执行:
mvn release:prepare release:perform -DautoVersionSubmodules
仅此而已。您将获得artifact-1.0.0-linux.zip、artifact-1.0.0-windows.zip、artifact-1.0.0-arm11.zip工件的发布。下一个开发版本将被设置为1.0.1-SNAPSHOT,用于所有模块(通过从父模块继承)。
发布于 2013-04-23 22:07:10
你帮我解答了你的问题.我不知道pushChanges=false的选择。
使用詹金斯,您可以在执行maven发布的每个平台上使用“触发器远程构建(例如,从脚本)”功能来设置一个作业。如果需要,可以使用参数化生成来选择要构建的版本(如果使用该版本,则需要参数化触发插件在其他平台上触发构建)。
https://stackoverflow.com/questions/10028361
复制相似问题