在maven项目中包含本地jar文件 - 找不到文件

时间:2016-07-14 19:39:44

标签: java maven intellij-idea jar pom.xml

所以我试图将两个本地jar文件包含到我拥有的Maven项目中,但没有这样做。我已经尝试在这些线程中完成解决方案:1 2但它仍然没有真正起作用。以下是我的pom.xml文件的关键部分:

    <repository>
        <id>local-maven-repo</id>
        <url>file://${basedir}/resources</url>
    </repository>

然后依赖:

    <dependency>
        <groupId>edu.mlab.jar1</groupId>
        <artifactId>jar1_local</artifactId>
        <version>1.0</version>
    </dependency>

    <dependency>
        <groupId>edu.mlab.jar2</groupId>
        <artifactId>jar2_local</artifactId>
        <version>1.0</version>
    </dependency>

两个jar文件分别包含edu.mlab.jar1edu.mlab.jar2的包声明,这就是我想要的地方。 jar文件位于resources文件夹中,位于基目录下。

这就是设置。现在,当我尝试mvn packagemvn clean之后)时,我收到以下错误

[ERROR] Failed to execute goal on project PROJECT: Could not resolve dependencies for project edu.mlab.project:PROJECT:war:1.0-SNAPSHOT: The following artifacts could not be resolved: edu.mlab.jar1:jar1_local:jar:1.0, edu.mlab.jar2:jar2_local:jar:1.0: Failure to find edu.mlab.jar1:jar1_local:jar:1.0 in file:///Users/mlab/Desktop/2016/project_web/resources was cached in the local repository, resolution will not be reattempted until the update interval of local-maven-repo has elapsed or updates are forced -> [Help 1]

由于我的jar1和jar2正好在资源文件夹中,所以我不确定会出现什么问题。此外,我已尝试使用系统范围导入它们的方法,但这不适用于我的目的,因为我希望它们包含在战争工件中。

非常感谢!

2 个答案:

答案 0 :(得分:1)

  1. 首先尝试使用下面的命令将这两个jar文件安装到Maven的本地存储库中
  2. mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file  -Dfile=path-to-your-artifact-jar \
                                                                                  -DgroupId=your.groupId \
                                                                                  -DartifactId=your-artifactId \
                                                                                  -Dversion=version \
                                                                                  -Dpackaging=jar \
                                                                                  -DlocalRepositoryPath=path-to-specific-local-repo
    

    参考网址:http://maven.apache.org/plugins/maven-install-plugin/examples/specific-local-repo.html

    注意:您的本地Maven存储库已在安装$ M2_HOME \ conf \ settings.xml中指定,例如

    <localRepository>C:\local_maven_repo</localRepository>
    
    1. 然后使用常规的Maven代码

      <dependency>
          <groupId>your.groupId</groupId>
          <artifactId>your-artifactId</artifactId>
          <version>your-version</version>
      </dependency> 
      

答案 1 :(得分:1)

假设:您正在使用Windows和您的jar1&amp; jar2位于C:\ Users \ yourusername中    夹

  1. 设置 M2_HOME 环境变量,例如

    C:\Users\yourusername>set M2_HOME=C:\apache-maven-3.3.9 C:\Users\yourusername>echo %M2_HOME% C:\apache-maven-3.3.9

  2. 手动创建文件夹C:\ local_maven_repo,然后编辑编辑文件

    C:\ apache-maven-3.3.9 \ conf \ settings.xml如下所示 enter image description here

  3. 运行 mvn 命令安装jar1&amp; jar2进入C:\ local_maven_repo,例如

  4. C:\Users\yourusername>mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=jar1.jar -DgroupId=edu.mlab -DartifactId=jar1 -Dversion=1.0 -Dpackaging=jar -DlocalRepositoryPath=C:\local_maven_repo

    C:\Users\yourusername>mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=jar2.jar -DgroupId=edu.mlab -DartifactId=jar2 -Dversion=1.0 -Dpackaging=jar -DlocalRepositoryPath=C:\local_maven_repo

    1. 验证jar1&amp; jar2位于C:\ local_maven_repo中,例如
    2. C:\Users\yourusername>dir C:\local_maven_repo\edu\mlab\jar1\1.0\

      C:\Users\yourusername>dir C:\local_maven_repo\edu\mlab\jar2\1.0\

      1. 打开文件C:\ local_maven_repo \ edu \ mlab \ jar1 \ 1.0 \ jar1-1.0.pom,以及C:\ local_maven_repo \ edu \ mlab \ jar2 \ 1.0 \ jar2-1.0.pom
      2. 文件:C:\ local_maven_repo \ edu \ mlab \ jar1 \ 1.0 \ jar1-1.0.pom

          <groupId>edu.mlab</groupId>
          <artifactId>jar1</artifactId>
          <version>1.0</version>
        

        文件:C:\ local_maven_repo \ edu \ mlab \ jar2 \ 1.0 \ jar2-1.0.pom

          <groupId>edu.mlab</groupId>
          <artifactId>jar2</artifactId>
          <version>1.0</version>
        

        复制以下内容并将其包含在pom.xml中,如下所示

        <dependency>
          <groupId>edu.mlab</groupId>
          <artifactId>jar1</artifactId>
          <version>1.0</version>
        <dependency>
        <dependency>
          <groupId>edu.mlab</groupId>
          <artifactId>jar2</artifactId>
          <version>1.0</version>
        <dependency>