首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有配置文件相关子模块的Maven发布插件

问带有配置文件相关子模块的Maven发布插件
EN

Stack Overflow用户
提问于 2010-10-21 13:34:38
回答 2查看 3.7K关注 0票数 1

我正在尝试使用多模块maven项目执行一个发行版。我的目标是修改所有poms的版本,并在SCM中创建一个标记,这就是我使用maven发布插件的原因。

此项目有一个层次结构,我已将其简化为:

代码语言:javascript
复制
example/
    module1/
    module2/
        module-jni-linux/
        module-jni-macosx/

pom.xml of example包含如下模块:

代码语言:javascript
复制
<modules>
  <module>module1</module>
  <module>module2</module>
</modules>

pom.xml of module2包含依赖于操作系统类型确定的配置文件的模块:

代码语言:javascript
复制
<profiles>
<!-- profile for linux -->
<profile>
  <id>linux</id>
  <activation>
    <os>
      <name>linux</name>
    </os>
  </activation>
  <modules>
    <module>module-jni-linux</module>
  </modules>
</profile>
<!-- profile for mac os -->    
<profile> 
  <id>macosx</id>
  <activation>
    <os>
      <name>mac os x</name>
    </os>
  </activation>
  <modules> 
    <module>module-jni-macosx</module> 
  </modules> 
</profile> 

最后,每个module-jni-*都使用本机maven插件来编译一些C/C++源代码并生成一个共享库。

问题:

当我在Mac盒中尝试一个mvn release:prepare -DdryRun=true时,我意识到发布过程没有考虑到module-jni-linux。这意味着,虽然所有模块都传递到1.0.0/1.0.1快照版本,但module-jni-linux没有被修改。在执行release:prepare时,我希望所有的子模块都被更新,即使它的配置文件没有被激活。

我尝试用mvn -P linux,macosx ...激活这两个配置文件,但是module-jni-linux不会在mac下构建(反之亦然)。

如何执行更新两个子模块版本的版本?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-21 15:01:31

好的,我找到了一种方法:

为了创建一个发行版,maven发布插件在提交到SCM之前运行clean和verify目标。verify目标试图编译每个模块。

我现在所做的是配置插件,使其只运行verify目标。但是,由于verify无论如何都很重要,所以在不同的环境下执行发布之前,我会手动运行它。我的释放程序如下:

  1. 在Mac和Linux环境中运行mvn clean verify。为此,我配置了一个多节点hudson作业。compilation
  2. check
  3. 运行mvn release:prepare -P macosx,linux -DdryRun=true -DpreparationGoals=clean,这将激活两个配置文件,但跳过satisfactory
  4. do运行结果为-DdryRun=false

的第2步的-DdryRun=false。

票数 1
EN

Stack Overflow用户

发布于 2010-10-21 14:21:22

对于父pom.xml中的Maven发布插件配置,您是否尝试过使用<arguments>参数指定要启用的配置文件?

你可以在这里读到更多关于它的信息:http://maven.apache.org/plugins/maven-release-plugin/prepare-mojo.html

基本上,它允许您向Maven调用传递附加参数,包括配置文件,如-P linux、macosx。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3987983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档