2015-04-22 3 views
2

Я пытаюсь импортировать RinSim 3.2.2 из Maven используя IntelliJ IDEA. Я запускаю Windows 8.1 x64. Ниже мой POM файл:Как получить IntelliJ IDEA для правильного импорта RinSim из Maven?

<?xml version="1.0" encoding="UTF-8"?> 
<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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>be.kuleuven.cs</groupId> 
    <artifactId>Multi-Agent_Systems</artifactId> 
    <version>1.0-SNAPSHOT</version> 

    <dependencies> 
     <dependency> 
      <groupId>com.github.rinde</groupId> 
      <artifactId>rinsim-example</artifactId> 
      <version>3.2.2</version> 
     </dependency> 
    </dependencies> 
</project> 

же файл POM импортирует библиотеку правильно в Eclipse, но при вызове функции реимпорта изнутри IntelliJ она решает зависимости неправильно. Библиотека зависит от библиотеки SWT UI, которая зависит от платформы. IntelliJ импортирует 32-разрядную версию в Windows вместо 64-разрядной версии. Архитектура выбирается с использованием профилей в the POM file of RinSim's UI library.

Я взломал эту проблему, изменив свой файл POM на hardcode в 64-разрядной зависимости, но это не чистое решение.

<?xml version="1.0" encoding="UTF-8"?> 
<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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>be.kuleuven.cs</groupId> 
    <artifactId>Multi-Agent_Systems</artifactId> 
    <version>1.0-SNAPSHOT</version> 

    <dependencies> 
     <dependency> 
      <groupId>org.eclipse.swt</groupId> 
      <artifactId>org.eclipse.swt.win32.win32.x86_64</artifactId> 
      <version>4.4</version> 
     </dependency> 
     <dependency> 
      <groupId>com.github.rinde</groupId> 
      <artifactId>rinsim-example</artifactId> 
      <version>3.2.2</version> 
      <exclusions> 
       <exclusion> 
        <groupId>org.eclipse.swt</groupId> 
        <artifactId>org.eclipse.swt.win32.win32.x86</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
    </dependencies> 

    <repositories> 
     <repository> 
      <snapshots> 
       <enabled>false</enabled> 
      </snapshots> 
      <id>swt-repo</id> 
      <name>SWT Repo</name> 
      <url>https://swt-repo.googlecode.com/svn/repo/</url> 
     </repository> 
    </repositories> 
</project> 

Я пытаюсь выяснить причину проблемы, файл POM библиотеки кажется правильным. Возможно, у IntelliJ есть ошибка, вызывающая такое поведение, но я не уверен, что так.

Я надеюсь, что кто-то может предложить мне решение этой проблемы или помочь мне выяснить причину проблемы.

+0

Не совсем уверен, но я думаю, что идея может работать в 32-битной JVM, которая автоматически активирует профиль x86 из-за того, как свойство '' os.arch' кажется оцененным] (http://stackoverflow.com/ вопросы/4748673/как-может-я-заезд на-разрядность-на-мой-Os-с использованием Java-j2se-не-ос-арка/5940770 # 5940770). Я подозреваю, что если вы измените идею JRE на версию x64, она выберет правильный профиль. В противном случае вы сможете выбрать активные профили из окна инструмента [** Maven Projects ** в разделе * Профили *] (https://www.jetbrains.com/idea/help/activating-and-deactivating-maven-profiles .html) – Morfic

ответ

2

Проблема в том, что IntelliJ работает по 32-разрядной JVM в комплекте по умолчанию.

Используйте idea64.exe вместо idea.exe. Исполняемые файлы можно найти в C:\Program Files (x86)\JetBrains\IntelliJ IDEA 14.x.x\bin.

Я пробовал и работает, как и ожидалось.