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

Maven:如何允许特定操作系统进行构建?,maven,maven-plugin,maven-enforcer-plugin,Maven,Maven Plugin,Maven Enforcer Plugin,我知道我可以使用maven enforcer plugin像这样要求特定的操作系统系列: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id

我知道我可以使用
maven enforcer plugin
像这样要求特定的操作系统系列:

<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>

org.apache.maven.plugins
maven enforcer插件
检查操作系统
执行
验证
unix
您应该使用Unix来构建它。
但是我可以定义多个可用于构建的操作系统(例如Unix和Windows)吗


找不到任何直接的方法,所以我很感激任何解决方法。

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

例如:


执行窗口
窗户
....

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

例如:


执行窗口
窗户
....

元素的主要目标是在构建过程中提供一些与平台相关的指令,也就是说,您需要根据当前的操作系统执行一些操作,因此,如果您定义为某些操作系统配置一些插件,而放弃其他插件,则没有多大意义

本着这种精神,
不允许范围限制(您不能将多个操作系统定义为:
[windows,linux]

同时,您仍然可以编写自己的自定义规则继承
Enforcerule
,并且只有在当前操作系统不在您的自定义规则要求的OSs范围内时,才能使构建失败

已经有一个实现了的规则,我曾经使用过一次。您可以查看,从中可以找到有关如何使用自定义规则的更多详细信息


有关自定义规则实施的更多信息,请参见

元素的主要目标是在构建过程中发出一些指令,这些指令依赖于平台,即,您需要根据当前操作系统执行一些操作,因此,如果您为某些操作系统定义并配置一些插件,而放弃其他插件,那么就没有多大意义了

本着这种精神,
不允许范围限制(您不能将多个操作系统定义为:
[windows,linux]

同时,您仍然可以编写自己的自定义规则继承
Enforcerule
,并且只有在当前操作系统不在您的自定义规则要求的OSs范围内时,才能使构建失败

已经有一个实现了的规则,我曾经使用过一次。您可以查看,从中可以找到有关如何使用自定义规则的更多详细信息


更多关于自定义规则实现的信息可以在

中找到是的,但据我所知,我可以很容易地用这种方式限制一些用于构建的操作系统。当我想允许几个操作系统时,我需要声明本节中不能使用的所有操作系统。对吗?是的,但据我所知,我可以很容易地用这种方式限制某些操作系统的构建。当我想允许一对操作系统时,我需要声明本节中不能使用的所有操作系统。正确吗?我没有发现关于为多个操作系统或组合规则配置规则的任何信息。但是,可以使用任何所需的参数或参数列表编写自己的规则:我没有发现任何关于为多个操作系统或组合规则配置规则的信息。但可以使用任何所需参数或参数列表编写自己的规则:
<profiles>
<profile>
  <id>exec-windows</id>
  <activation>
    <os>
      <family>windows</family>
    </os>
  </activation>
  <build> <plugins> ....