我有一个本地 jar,我想在我的项目中使用它。有很多方法可以做到这一点:只需手动安装到本地 repo,在父 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 初始化安装:安装文件
mvn 初始化
mvn install:安装文件

但我一直有一个异常(exception):

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file (default-cli) on project MYPROJECTNAME: The parameters 'file' for goal org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file are missing or invalid ->



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

最后我采取了另一种方式:我将它放入我的父 POM 中,但为什么它适用于父级而不适用于子级?

请您参考如下方法:

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

如果您想将它安装为您尝试过的构建的一部分,这意味着您需要像这样调用 maven:

mvn package 

你不应该混淆没有生命周期的调用目标,如 install:install-file生命周期部件为 initialize .

这就是您收到描述的错误消息的原因,导致 command line part needs required parameters你没有在命令行上给出的。

组合如:
mvn install:install-file initialize 

使 Maven 毫无意义(很少)。您已将 maven-install-plugin 绑定(bind)到 pom 中的生命周期,因此您应该简单地调用生命周期:
mvn initalize 

你会得到类似下面的东西:
[INFO] ------------------------------------------------------------------------ 
[INFO] Building test 0.6-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO]  
[INFO] --- maven-install-plugin:2.3.1:install-file (default) @ test --- 
[INFO] Installing /home/mvntest/lib/jdom-1.0.jar to /home/.m2/repository/com/soebes/test/jacob/1.1/jacob-1.1.jar 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 0.780s 
[INFO] Finished at: Sat Oct 25 12:19:30 CEST 2014 
[INFO] Final Memory: 6M/91M 
[INFO] ------------------------------------------------------------------------ 

但是:我不得不说像你一样安装一个 Artifact 是不好的做法。最好是使用像 Nexus 这样的存储库管理器。 , ArtifactoryArchiva或者如果真的不喜欢存储库管理器(我不明白为什么,但这是另一回事),您可以使用 Stephen Connolly's non-maven-jar-maven-plugin

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


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!