Диапазоны версий Maven и версии с суффиксами в IntelliJ Idea - PullRequest
0 голосов
/ 05 февраля 2012

Обновление № 1

Я не уверен, что это хорошее решение, но в качестве быстрого обходного пути я смог получить его на основе maven-2.x / Idea, понизив JFace с 3.3.0-I20070606-0010 до 3.2.1-M20060908- 1000

Исходное сообщение

Я пытаюсь разработать приложение SWT / JFace с IntelliJ Idea 11.0.2 и Maven. Проблема:

Idea использует внутренне что-то, похожее на API-интерфейс maven-2.x, поэтому не может обрабатывать версии с суффиксом (например, «1.0-v666999» вместо простого «1.0») в диапазонах версий, которые используются в org.eclipse: Jface Maven артефакт. Тем не менее, Maven-3.0 может легко справиться с ними.

Итак, взаимоисключающие вопросы:

  1. Как настроить Idea для использования maven-3.0 в качестве внутреннего движка maven (чтобы он мог правильно разрешить все операции импорта)
  2. Как "обойти" такие суффиксы версий с помощью инструментов maven-2.x, так что идея, артефакты maven JFace и сам maven могли бы хорошо играть вместе?
    1. Есть ли способ "сопоставить" версии для maven, например "1.0-v666999" -> "1.0"?
    2. Есть ли способ принудительного использования определенной версии артефакта?
    3. Ваши идеи -?

Вот пример pom.xml, который использует JFace, который использует ранжированные версии:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>repotest</groupId>
  <artifactId>repotest</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>Archetype - repotest</name>
  <url>http://maven.apache.org</url>

  <dependencies>
    <dependency>
      <groupId>${swt.groupId}</groupId>
      <artifactId>${swt.artifactId}</artifactId>
      <version>3.3.0-v3346</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse</groupId>
      <artifactId>jface</artifactId>
      <version>3.3.0-I20070606-0010</version>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>mac</id>
      <activation>
    <os>
      <name>mac os x</name>
    </os>
      </activation>
      <properties>
    <swt.groupId>org.eclipse.swt.carbon</swt.groupId>
    <swt.artifactId>macosx</swt.artifactId>
       </properties>
    </profile>
    <profile>
      <id>windows</id>
      <activation>
    <os>
      <family>windows</family>
    </os>
      </activation>
      <properties>
    <swt.groupId>org.eclipse.swt.win32.win32</swt.groupId>
    <swt.artifactId>x86</swt.artifactId>
      </properties>
    </profile>
    <profile>
      <id>unix</id>
      <activation>
    <os>
      <family>unix</family>
    </os>
      </activation>
      <properties>
    <swt.groupId>org.eclipse.swt.gtk.linux</swt.groupId>
    <swt.artifactId>x86</swt.artifactId>
      </properties>
    </profile>  
  </profiles>

  <build>
    <plugins>
      <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
      <source>1.6</source>
      <target>1.6</target>
    </configuration>
      </plugin>
      <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>1.5</version>
    <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>shade</goal>
        </goals>
        <configuration>
          <filters>
        <filter>
          <artifact>*:*</artifact>
          <excludes>
            <exclude>META-INF/*.SF</exclude>
            <exclude>META-INF/*.DSA</exclude>
            <exclude>META-INF/*.RSA</exclude>
          </excludes>
        </filter>
          </filters>
          <transformers>
        <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
          <mainClass>repotest.RootWindow</mainClass>
        </transformer>
          </transformers>
        </configuration>
      </execution>
    </executions>
      </plugin>
    </plugins>
  </build>
</project>

А вот файл src / main / java / repotest / RootWindow.java, используемый этим pom.xml:

package repotest;

import org.eclipse.swt.widgets.Display;
import org.eclipse.jface.window.ApplicationWindow;

public class RootWindow extends ApplicationWindow {
    public static void main(String[] args) {
        ApplicationWindow rootWindow = new RootWindow();
        rootWindow.setBlockOnOpen(true);
        rootWindow.open();
        Display.getCurrent().dispose();
    }       

    public RootWindow() {
        super(null);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...