首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven:如何允许特定的操作系统进行构建?

Maven:如何允许特定的操作系统进行构建?
EN

Stack Overflow用户
提问于 2015-01-14 10:48:02
回答 2查看 1.5K关注 0票数 1

我知道我可以像这样使用maven-enforcer-plugin来要求特定的OS家庭:

代码语言:javascript
复制
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-enforcer-plugin</artifactId>
    <executions>
        <execution>
            <id>check-os</id>
            <goals>
                <goal>enforce</goal>
            </goals>
            <phase>validate</phase>
            <configuration>
                <rules>
                    <requireOS>
                        <family>unix</family>
                        <message>
                            You should use Unix to build this.
                        </message>
                    </requireOS>
                </rules>
            </configuration>
        </execution>
    </executions>
</plugin>

但我能否定义可用于构建的多个OS (例如Unix和Windows)?

我找不到任何直截了当的方法,所以我很感激任何解决办法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-14 15:00:21

platform-dependent,元素的主要目标是在构建<requireOS>时进行一些指令,即您需要根据当前的操作系统执行一些操作,因此,如果为某些操作系统定义一些插件,而将另一些插件丢弃,那么就没有什么意义了。

本着这种精神,<requireOS>不允许范围限制(不能将多个OSs定义为:<requireOS>[windows,linux]</requireOS>)。

同时,您仍然可以编写您自己的自定义规则,继承EnforcerRule,并且只有在当前操作系统没有进入您的自定义规则所需的OSs 时,构建才会失败。

已经有一个我曾经使用过的已实现的规则。您可以在项目URL中找到关于如何使用自定义规则的更多详细信息。

有关自定义规则实现的更多信息,可以在Maven Docs中找到。

票数 2
EN

Stack Overflow用户

发布于 2015-01-14 10:58:34

您可以使用配置文件来管理不同的操作系统。

例:

代码语言:javascript
复制
<profiles>
<profile>
  <id>exec-windows</id>
  <activation>
    <os>
      <family>windows</family>
    </os>
  </activation>
  <build> <plugins> ....
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27941091

复制
相关文章

相似问题

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