首页 > 解决方案 > 在 pom 中使用 maven-install-plugin 将外部库导入本地存储库

问题描述

我的问题是我想将一个外部库自动导入到用户的本地 maven 存储库中。

这是我使用 maven-install-plugin 使其工作的方法:

       <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-install-plugin</artifactId>
            <version>2.5.2</version>
            <executions>
                <execution>
                    <id>install-external</id>
                    <phase>clean</phase>
                    <configuration>
                        <file>${basedir}/myjar.jar>
                        <repositoryLayout>default</repositoryLayout>
                        <groupId>mygroupid</groupId>
                        <artifactId>myartefactid</artifactId>
                        <version>myversion</version>
                        <packaging>jar</packaging>
                        <generatePom>true</generatePom>
                    </configuration>
                    <goals>
                        <goal>install-file</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

但是在 pom 中,为了让它工作,我必须在两个不同的命令中执行:

mvn clean 
mvn install

如果我只是在跑步

 mvn clean install

在安装阶段无法解决我的依赖关系(除非我单独完成了 mvn clean 并且我当然没有清理本地存储库)。只有当我单独运行“mvn clean”时,Clean 似乎才会调用插件。

我想要的是在运行“mvn install”时自动导入我的依赖项。或者至少在单个命令中运行“mvn clean install”时。

标签: javamavenpluginsinstallation

解决方案


您的解决方案不能仅使用一个 Maven 命令。

如果您使用 启动 Maven ,则首先mvn something解析依赖项,因此您在构建期间通过插件安装的任何内容都不会被发现。

正如 khmarbaise 已经说过的那样,解决方案是首先将工件放入存储库中。通常的解决方案是您的公司 Nexus/Artifactory(如果您进行认真的 Maven 开发,应该有一个)。

如果这真的不可能,您可以使用一个目录作为 Maven 存储库,如下所述:https ://stackoverflow.com/a/28762617/927493


推荐阅读