Maven:将未知的jar文件导入存储库[重复]

Posted

技术标签:

【中文标题】Maven:将未知的jar文件导入存储库[重复]【英文标题】:Maven: import unknown jar files into repository [duplicate] 【发布时间】:2016-10-02 04:55:08 【问题描述】:

目前我遇到的问题是我有一个用 eclipse 创建的 Java 项目,现在应该用 maven 构建。我还没有创建这个项目,我只需要迁移它。这里的问题是我有一堆需要包含的 3rd 方 jar 才能正确构建项目。我对这些罐子一无所知(实际上我并不关心它们的作用以及它们的来源)。

我设法找到了有关如何通过命令行将这些 jar 添加到 ma local repro 的资源,并且我进一步创建了一个 pom.xml 来为我完成这项工作(所以我不需要使用命令行)但不知何故它不能正常工作。不管我使用命令行还是 pom.xmo,这两种方法都不适合我。当我运行 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>
   <parent>
      <groupId>common</groupId>
      <artifactId>common.master</artifactId>
      <relativePath>../pom.xml</relativePath>
      <version>1.0.0-SNAPSHOT</version>
   </parent>
   <groupId>common</groupId>
   <artifactId>org.proj4j</artifactId>
   <name>org.proj4j</name>
   <version>0.1.0</version>
   <packaging>jar</packaging>
   <build>
      <sourceDirectory>src/</sourceDirectory>
      <plugins>
         <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.2</version>
            <configuration>
               <source>$jdk.version</source>
               <target>$jdk.version</target>
            </configuration>
         </plugin>
<plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.4</version>
          <executions>
            <execution>
              <id>install1</id>
              <phase>package</phase>
              <goals>
                <goal>install-file</goal>
              </goals>
              <configuration>
                <file>proj4j-0.1.0.jar</file>
                <groupId>common</groupId>
                <artifactId>org.proj4j</artifactId>
        <name>proj4j</name>
                <version>0.1.0</version>
        <packaging>jar</packaging>
              </configuration>
            </execution>
            <execution>
              <id>install2</id>
              <phase>package</phase>
              <goals>
                <goal>install-file</goal>
              </goals>
              <configuration>
                <file>proj4j-support-0.1.0.jar</file>
                <groupId>common</groupId>
                <artifactId>org.proj4j</artifactId>
        <name>proj4j-support</name>
                <version>0.1.0</version>
        <packaging>jar</packaging>
              </configuration>
            </execution>
          </executions>
        </plugin>
      </plugins>
   </build>
</project>

jar 被放入我的本地 repro 中指定的组 ID、工件 ID 等下。但是编译器仍然失败并显示 Unknown Symbol Error,它表示在编译期间找不到所需的类。我猜原因是工件 ID 和组 ID,因为我想出了它们。它们根本与我的第 3 方罐子无关。但我也不知道正确的组 ID/工件 ID,因为我对罐子一无所知。它们也部分由大学自行编写。

我该怎么做才能让 maven 找到所需的库并解决所有缺失的类。就像我已经说过的那样,使用 eclipse 一切都运行良好并且没有任何问题。是否可以将 jar 以某种方式放入我本地 repro 的一个文件夹中并告诉编译器如果您搜索任何内容,请开始查看这里

【问题讨论】:

如果有帮助,我可以请你投票给答案,即使有点晚了 XD!谢谢 感谢韦斯特兰格!! 【参考方案1】:

查看以下其中一项是否适合您:

How to add local jar files in maven project?

Maven: add a dependency to a jar by relative path如果有帮助请告诉我

他们详细解释了需要做什么..

【讨论】:

非常感谢,我已经找到了解决方案.. 这是依赖项/系统路径之一 太好了,你解决了它:) 我很久以前就遇到过同样的问题..【参考方案2】:

您可以手动将您的 jar 放入您的存储库中。你不必对这个 jars 一无所知,artifact-id 和 group-id 会影响 repo 中的路由以及编译器将查找的依赖项的名称。

我建议您添加一些存在于 maven repo 中的依赖项,并观察 pom 在本地 repo 中创建的文件的路径和名称,然后确保您查看 pom.xml 的工作方式。

【讨论】:

以上是关于Maven:将未知的jar文件导入存储库[重复]的主要内容,如果未能解决你的问题,请参考以下文章

IDEA中maven如何将jar包导入本地的maven库

如何使用没有pom文件或settings.xml文件的maven直接将jar文件上传到nexus存储库?

如何在 Maven 项目中包含本地 jar 文件 [重复]

AndroidStudio如何导入jar,so,以及第三方的开源库?

仅将 JAR 发布到 maven 存储库

将项目从bitbucket导入到本地maven存储库