Maven Install插件:参数文件丢失或无效

时间:2014-10-25 08:25:26

标签: maven jar

我有一个本地jar,我想在我的项目中使用它。有很多方法可以做到:只需手动安装到本地仓库,使用父pom中的脚本,使用系统范围,使用本地repo声明。

我决定使用Maven Install插件将jar安装到repo中。这是一个配置:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-install-plugin</artifactId>
        <version>2.3.1</version>
        <executions>
            <execution>
                <phase>initialize</phase>
                <goals>
                    <goal>install-file</goal>
                </goals>
                <configuration>
                    <groupId>jacob</groupId>
                    <artifactId>jacob</artifactId>
                    <version>1.0</version>
                    <packaging>jar</packaging>
                    <file>${basedir}\lib\jacob.jar</file>
                </configuration>
            </execution>
        </executions>
    </plugin>

我试图以多种方式运行它: mvn初始化install:install-file mvn初始化 mvn install:install-file

但是我一直有例外:

  

[错误]无法执行目标   org.apache.maven.plugins:Maven的安装,插件:2.3.1:安装文件   项目MYPROJECTNAME上的(default-cli):目标的参数'file'   org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file are   遗失或无效 - &gt;

我只是想知道为什么它不起作用?看起来我被阶段和目标弄糊涂了..

最后,我采用了另一种方式:我将它放入我的父POM中,但为什么它与父母一起使用并且不适用于孩子?

1 个答案:

答案 0 :(得分:3)

处理分离jar的最佳方法是开始使用存储库管理器并通过UI将此jar安装到存储库管理器中。从那时起,您可以将其用作通常的依赖项。让生活更轻松。

如果您想将其作为构建的一部分进行安装,那么您需要像这样调用maven:

mvn package

你不应该将没有生命周期的调用目标与生命周期部分install:install-file混合在一起。{/ p>

这就是为什么你得到所描述的错误信息的原因,导致你没有在命令行上给出的command line part needs required parameters

组合如:

initialize

让Maven毫无意义(rarly)。你已经将maven-install-plugin绑定到pom中的life-clycle,所以你应该简单地调用life cylce:

mvn install:install-file initialize

您将获得以下内容:

mvn initalize

但是我必须说像你一样安装一件神器是不好的做法。最好是使用像NexusArtifactoryArchiva这样的存储库管理器,或者如果真的不喜欢存储库管理器(我不明白为什么,但这是一个不同的故事)你可以使用Stephen Connolly's non-maven-jar-maven-plugin

除上述所有内容外,您还应使用更新版本的maven-install-plugin which current version number is 2.5.2