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文件导入存储库[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用没有pom文件或settings.xml文件的maven直接将jar文件上传到nexus存储库?