当前位置: 首页 > 知识库问答 >
问题:

在Intellij IDE中的maven项目中添加外部jar作为依赖项

王季萌
2023-03-14

我正在使用Intellij社区版v2020.3.2和Java8。

我通过以下步骤添加外部jar文件,file-

执行在IDE中运行良好。但是当使用maven安装时会抛出错误“包包名不存在”。

我的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">
    <parent>
        <artifactId>DDXUtils</artifactId>
        <groupId>com.ph</groupId>
        <version>1.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>ValidationManager</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <build>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.ph.validationManager.Dummy</mainClass>
                            <classpathPrefix>lib/</classpathPrefix>
                            <addClasspath>true</addClasspath>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>

            <plugin>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-libs</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.parent.basedir}/target/lib</outputDirectory>
                            <excludeScope>provided</excludeScope>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-artifact</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>${project.groupId}</groupId>
                                    <artifactId>${project.artifactId}</artifactId>
                                    <version>${project.version}</version>
                                    <type>${project.packaging}</type>
                                </artifactItem>
                            </artifactItems>
                            <outputDirectory>${project.parent.basedir}/target</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.12.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.6</version>
        </dependency>

    </dependencies>


</project>

当我移除外部jar时,maven安装工作正常。

共有2个答案

丰胤运
2023-03-14

下面是我如何将罐子添加到maven POM中的:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-install-plugin</artifactId>
            <version>2.5.2</version>
            <executions>
                <execution>
                    <id>FIRST_LIBRARY_ID</id>
                    <phase>initialize</phase>
                    <goals>
                        <goal>install-file</goal>
                    </goals>
                    <configuration>
                        <file>lib/my_lib_1.jar</file>
                        <groupId>com.group</groupId>
                        <artifactId>FIRST_LIBRARY_ID</artifactId>
                        <version>1.0</version>
                        <packaging>jar</packaging>
                    </configuration>
                </execution>
                <execution>
                    <id>SECOND_LIBRARY_ID</id>
                    <phase>initialize</phase>
                    <goals>
                        <goal>install-file</goal>
                    </goals>
                    <configuration>
                        <file>lib/my_lib_2.jar</file>
                        <groupId>com.group</groupId>
                        <artifactId>SECOND_LIBRARY_ID</artifactId>
                        <version>1.0</version>
                        <packaging>jar</packaging>
                    </configuration>
                </execution>
            </executions>
        </plugin>

然后只需将它们添加到依赖项:

    <dependency>
        <groupId>com.group</groupId>
        <artifactId>FIRST_LIBRARY_ID</artifactId>
        <version>1.0</version>
    </dependency>
    <dependency>
        <groupId>com.group</groupId>
        <artifactId>SECOND_LIBRARY_ID</artifactId>
        <version>1.0</version>
    </dependency>

你可以把你想要的放在

谭梓
2023-03-14

要在Maven中使用本地jar,首先需要将这个jar安装到Maven本地存储库中。然后可以在Maven pom中将其指定为依赖项。xml构建文件和IDE也将根据Maven配置自动链接它。您可以使用类似的命令导入它:

mvn install:install-file \
   -Dfile=<path-to-file> \
   -DgroupId=<group-id> \
   -DartifactId=<artifact-id> \
   -Dversion=<version> \
   -Dpackaging=<packaging> \
   -DgeneratePom=true

请参见以下答案:

警告:请勿在基于Maven/Gradle的项目中手动修改IDE项目结构设置,因为在Maven/Gradle重新加载后,IDE将重置此手动配置。

 类似资料:
  • 我在我的项目中使用了maven shade插件将所有依赖项jar类重新定位到一个包下,例如org.shade.* 当我试图在其他应用程序中使用带阴影的jar作为maven依赖项时,它会拉出依赖项jar的。 我的期望是,当Uber/shaded jar包含为maven依赖项时,它不应该拉出任何其他依赖类jar,因为这些类已经在shaded jar中重新打包了。

  • 当我右键单击Maven项目并选择AddDependency选项,然后在查询中键入外部jar的名称时,找不到它。如何将外部jar添加到Maven项目中?

  • 问题内容: 如何获取我拥有的jar文件并将其添加到Maven 2的依赖系统中?我将成为此依赖项的维护者,并且我的代码需要在类路径中使用此jar,以便对其进行编译。 问题答案: 您必须分两步执行此操作: 1.给您的JAR一个groupId,artifactId和版本,然后将其添加到您的存储库中。 如果您没有内部存储库,而只是试图将JAR添加到本地存储库,则可以使用任意groupId / artifa

  • 我有一个使用Gradle作为构建工具的项目和第二个使用Maven的POM的子项目。我没有在子项目上更改构建工具的自由。 我想要实现的是将我的项目添加到Maven POM中,作为我的Gradle项目的依赖项。 其中root(当前目录)是我的Gradle项目,并包含,Maven项目位于下,POM文件就在该目录下。 我在我的< code>build.gradle文件中尝试了这些变化: 第一次尝试: 第二

  • 我是SpringMVC的新人。我试图将我的核心Maven项目添加到Spring MVC Maven项目中。它成功地构建了,我可以在“target\project.war\WEB-INF\lib”中看到相应的jar文件,但它在glassfish控制台上引发了错误。 严重:部署应用程序时出现异常 我不能添加任何maven项目或jar文件。极有可能我没有做正确的添加依赖关系。如果有人能帮我。提前谢了。