Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何处理maven/spring存储库中不存在的依赖关系?_Spring_Maven 2_Repository_Dependency Management_Pom.xml - Fatal编程技术网

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

如何处理maven/spring存储库中不存在的依赖关系?,spring,maven-2,repository,dependency-management,pom.xml,Spring,Maven 2,Repository,Dependency Management,Pom.xml,我有一个应用程序,它的依赖关系由maven处理。我需要知道,如何处理远程存储库中不存在的依赖关系。我不想使用本地存储库。需要帮助。我可以找到一些解决方案: 查找另一个具有所需依赖项的远程存储库 (贾瓦纳、芬贾尔等)你是朋友吗 等待依赖项的维护者使它们在远程存储库中可用 (闭上眼睛,交叉手指……然后等待) 使用所需的依赖项设置您自己的远程存储库 (组织化存储库) 手动或通过最喜爱的IDE:p将依赖项放入CalsPath中 当你说 不存在的依赖项 在远程存储库中 我假设您的意思是maven cent

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

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

  • 查找另一个具有所需依赖项的远程存储库 (贾瓦纳、芬贾尔等)你是朋友吗

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

  • 使用所需的依赖项设置您自己的远程存储库 (组织化存储库)

  • 手动或通过最喜爱的IDE:p将依赖项放入CalsPath中

  • 当你说

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

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


    如果没有包含您的依赖项的远程存储库,并且您不想在本地存储库中安装它们,那么maven将自动处理这种情况-它将出现错误并无法生成。

    默认情况下,maven编译器插件使用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>
    
    
    org.apache.maven.plugins
    maven编译器插件
    2.3
    1.6
    1.6
    
    如果您不想使用本地存储库,那么您可以使用系统范围来声明它们。记录

    例如:

    <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>
    
    
    ...
    javax.sql
    jdbc-stdext
    2
    系统
    ${java.home}/lib/rt.jar
    ...
    

    我真的建议使用本地存储库。非常容易设置和安装Nexus。系统作用域实际上是为了包括对JVM的扩展而设计的。

    那么依赖JAR在哪里?是否要从组织的回购协议中下载JAR?此答案似乎无法解决问题