Eclipse中的Maven原生依赖

mik*_*era 4 java eclipse lwjgl m2eclipse maven

我正在尝试使用Maven在Eclipse(Juno)中顺利运行一些本机依赖项(LWJGL).

现在的情况:

  • 我使用的是maven-nativedependencies-plugin0.0.6版本.这似乎成功地将本机库下载并解压缩到target/natives我的项目的子目录中.好到目前为止.
  • 我可以通过手动添加target/natives目录来使依赖项工作Properties / Java Build Path / Maven Dependencies / Native Library Location / Edit...
  • 但是这只能暂时起作用,因为它似乎不能在pom中的任何位置指定本机库位置.特别是,每当我执行a时它会中断,Maven / Update Project...因为本机库位置被清除(可能是m2e根据pom重新配置项目)
  • 每当清除本机库位置时,我只会收到错误"java.lang.UnsatisfiedLinkError:java.library.path中没有lwjgl"

使这种工作可靠的最佳方法是什么?

Sai*_*Aye 5

试试这个步骤;

  • 转到java项目的运行配置.
  • 打开Arguments选项卡,在VM Arguments中输入"-Djava.library.path = target/natives".

对于maven项目;

确保你的pom.xml像这样;

      <build>
            <plugins>
                    <plugin>
                            <artifactId>maven-compiler-plugin</artifactId>
                            <version>2.3.2</version>
                            <configuration>
                                    <source>1.5</source>
                                    <target>1.5</target>
                                    <encoding>UTF-8</encoding>
                            </configuration>
                    </plugin>
                    <plugin>
                            <groupId>com.googlecode.mavennatives</groupId>
                            <artifactId>maven-nativedependencies-plugin</artifactId>
                            <version>0.0.6</version>
                            <executions>
                                    <execution>
                                            <id>unpacknatives</id>
                                            <phase>generate-resources</phase>
                                            <goals>
                                                    <goal>copy</goal>
                                            </goals>
                                    </execution>
                            </executions>
                    </plugin>
                    <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-jar-plugin</artifactId>
                            <version>2.3.2</version>
                            <configuration>
                                    <archive>
                                            <manifest>
                                                    <mainClass>${main.class}</mainClass>
                                                    <addClasspath>true</addClasspath>
                                                    <classpathPrefix>lib/</classpathPrefix>
                                            </manifest>
                                    </archive>
                            </configuration>
                    </plugin>
                    <plugin>
                            <artifactId>maven-assembly-plugin</artifactId>
                            <version>2.2.1</version>
                            <executions>
                                    <execution>
                                            <id>bundle-project-sources</id>
                                            <phase>package</phase>
                                            <goals>
                                                    <goal>single</goal>
                                            </goals>
                                            <configuration>
                                                    <descriptors>
                                                            <descriptor>src/META-INF/assembly.xml</descriptor>
                                                    </descriptors>
                                            </configuration>
                                    </execution>
                            </executions>
                    </plugin>
            </plugins>
    </build> 
Run Code Online (Sandbox Code Playgroud)

然后左键单击eclipse项目,转到maven菜单并单击"更新项目配置".如果您仍然遇到问题,请在eclipse控制台选项卡中打开maven控制台并再次执行"更新项目配置"选项