如何处理maven / spring存储库中不存在的依赖项?

时间:2011-03-24 10:18:02

标签: spring maven-2 repository dependency-management pom.xml

我有一个应用程序,其依赖项由maven处理。我需要知道,我如何处理远程存储库中不存在的依赖项。我不想使用本地存储库。需要帮助。

4 个答案:

答案 0 :(得分:1)

我可以看到一些解决方案:

  1. 找到另一个具有所需依赖项的远程存储库 (jarvana,findjar等)是你的朋友

  2. 等待依赖项的维护者在远程存储库上使它们可用 (闭上眼睛,交叉手指......等待)

  3. 使用您需要的依赖项设置您自己的远程存储库 (oragnization存储库)

  4. 手动或通过您喜欢的IDE将依赖项放在calsspath中:p

答案 1 :(得分:0)

当你说

  

不存在的依赖项   在远程存储库中

我假设您的意思是maven central(默认存储库)中不存在的存储库。如果是这样,正如Stephen建议的那样,您可能希望在pom中添加repositories部分,并引用其他具有依赖关系的存储库。

如果没有具有依赖关系的远程存储库,并且您不希望将它们本地安装到本地存储库,则maven将自动处理这种情况 - 它将发出错误并且无法建立。

答案 2 :(得分:0)

默认情况下,maven-compiler-plugin使用java 1.3进行编译。您需要将其配置为使用jdk5 / jdk6。将以下内容添加到POM xml。

<build>
<plugins>
    <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
</plugins>
</build>

答案 3 :(得分:0)

如果您不想使用本地存储库,那么您可以使用系统范围声明它们。记录here

示例:

<project>
  ...
  <dependencies>
    <dependency>
      <groupId>javax.sql</groupId>
      <artifactId>jdbc-stdext</artifactId>
      <version>2.0</version>
      <scope>system</scope>
      <systemPath>${java.home}/lib/rt.jar</systemPath>
    </dependency>
  </dependencies>
  ...
</project>

我真的建议使用本地存储库。非常容易设置和安装Nexus。 系统范围实际上旨在包含对JVM的扩展。