有没有办法在Eclipse中为一个maven项目使用多个maven依赖项?

时间:2016-04-11 18:38:28

标签: java eclipse maven bukkit buildpath

我正在使用Eclipse中的M2E插件开发Bukkit插件。我有一个问题,maven依赖(Bukkit 1.5.2 R1.0)在两个不同的位置,取决于我是否在学校。在家里,文件树位于我的Dropbox中,其中maven repo位于C:/users/canon/.m2/repository/org/bukkit/bukkit-1.5.2-R1.0但在学校它位于C:/ users /nmeyer/.m2/repository/org/bukkit/bukkit-1.5.2-R1.0。我已经能够使用maven重新创建项目,使得maven存储库一次只能在一台计算机上的正确位置,但不能同时存在。有没有办法可以让Maven在这两个文件位置查看maven存储库,这样我就不必为同一个项目配置相同版本的相同版本了吗?

附加注意:我创建maven项目的文件路径将正常工作并正确显示bukkit-1.5.2-R1.0 jar文件树正确显示在maven依赖项下,但它无法在计算机上运行其他地点(家庭与学校)。

澄清:Maven存储库是在我的pom.xml中定义的,但我不知道在哪里可以找到maven repo路径。我已经附上了我的pom.xml,因为它的格式似乎与发布的可能答案有点不同:

<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>com.nathanMeyer</groupId>
<artifactId>headInfo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
            <source>1.7</source>
            <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>
<repositories>
    <repository>
        <id>bukkit-repo</id>
        <url> http://repo.bukkit.org/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>org.bukkit</groupId>
        <artifactId>bukkit</artifactId>
        <version>1.5.2-R1.0</version>
        <type>jar</type>
        <scope>provided</scope>
    </dependency>
</dependencies> 

2 个答案:

答案 0 :(得分:1)

对于Maven,您不需要对路径进行硬编码。您可以使用:

${user.home}

例如,

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      https://maven.apache.org/xsd/settings-1.0.0.xsd">
  <localRepository>${user.home}/.m2/repository</localRepository>
  <interactiveMode>true</interactiveMode>
  <usePluginRegistry>false</usePluginRegistry>
  <offline>false</offline>
  ...
</settings>

查看maven设置参考以获取更多信息:https://maven.apache.org/settings.html

然后,您的导入将如下所示:

<plugin>
    <groupId>org.bukkit</groupId>
    <artifactId>bukkit-1.5.2-R1.0</artifactId>
</plugin>

答案 1 :(得分:0)

我弄清楚问题是什么,它是如此愚蠢,我甚至没想到它。事实证明,我的学校阻止bukkit.org为“游戏”,因为学校计算机Eclipse没有机会从学校计算机连接到该存储库,因为回购http://repo.bukkit.org/content/groups/public/无法访问。