Как активировать pom.xml, если ОС не принадлежит данному семейству (например, mac)? - PullRequest
1 голос
/ 27 февраля 2011

с веб-сайт Maven :

    ...
  <profiles>
    <profile>
      <id>default-tools.jar</id>
      <activation>
        <property>
          <name>java.vendor</name>
          <value>Sun Microsystems Inc.</value>
        </property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>com.sun</groupId>
          <artifactId>tools</artifactId>
          <version>1.4.2</version>
          <scope>system</scope>
          <systemPath>${java.home}/../lib/tools.jar</systemPath>
        </dependency>
      </dependencies>
    </profile>
  </profiles>
  ...

tools.jar уже включен на Mac, встроен в classes.jar. Не было никакого способа указать! Mac в настройках активации (за исключением перечисления всех ОС кроме Mac) в pom.xml вместо того, чтобы всегда получать:

ERROR>warning: [path] bad path element ""/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/lib/tools.jar"": no such file or directory

Ответы [ 2 ]

1 голос
/ 12 апреля 2011

Вы можете использовать '!'модификатор в разделе активации os (пробовал и работает с Maven 3.0.3).Использует тот же алгоритм, что и плагин принудительного применения, описанный здесь .

<profiles>
    <profile>
        <id>not-mac</id>
        <activation>
            <os>
                <family>!mac</family>
            </os>
        </activation>
        <properties>
            <!-- Define non-mac properties here -->
        </properties>
    </profile>
</profiles>

См. эту статью для более полного описания использования tools.jar в Maven.

0 голосов
/ 27 февраля 2011

Я нашел другой метод.Иметь зависимость в профиле "activeByDefault".Иметь другой профиль (профиль-2), который активируется, если ОС Mac.Согласно this профили "activeByDefault" деактивируются, если активируются другие профили.Таким образом, если ОС Mac, активируется профиль 2, что деактивирует профиль «activeByDefault».

...