2012-06-05 293 views
0

我正在学习maven并试图理解事物的顺序。据我所知,mvn clean install建立与默认罐子库,其中install产生一个.zip,我将在稍后需要。mvn干净安装,mvn安装:安装文件顺序?

我想用我自己定制的罐子,我打电话mvn install:install-file,但是当我在install之前运行这个时,我得到一些cannot find symbol错误。我假设我的自定义罐子(不包含这些类)覆盖了一些默认罐子?我无法在文件系统的任何位置找到这些类,因此我假设它们已经打包在默认的一个jar中。我怎样才能解决这个问题?

另外,我应该做些什么?我想要的只是最终的.zip,包括自定义的罐子?

回答

0
  1. mvn install - 构建和打包的源代码和副本(安装)神器到你的本地库是$USER_HOME/.m2/repository

  2. 很难说发生了什么事没有不看的命令,键入,并收到错误跟踪。也就是说,install-file是将工件复制到适当层次的本地回购。没什么比这更重要的了。正确的语法是:

    mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \ 
        -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging> 
    
  3. 通常情况下,你只需要为所有的定制依赖运行install:install-file一次,你执行mvn install之前。

  4. 如果您的自定义JAR具有相同的坐标 - artifactid,groupid和版本作为您的pom.xml中的某些依赖项,并且您的自定义JAR没有您的源代码使用的类别 - 那么,您会得到错误。

参考:http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html

+0

我在调用install-file时引用了.pom和.jar。我为2个不同的自定义罐子做这个。问题是,当我最后尝试'mvn install'时,它找不到类的错误(在文件系统上不存在,但它是原始.pom中的依赖项)。当我清除存储库时,'mvn clean install'工作正常,只是在我调用install-file时,它会失败。在安装文件之前清理干净,我可能在我安装的'新'pom文件中的某个位置丢失了一个依赖项? – user12740

0

关于到maven-install-plugin website他们提到如下所示: -

安装:安装文件:主要是用来安装外部创建的神器与其POM一起放入本地存储库。在这种情况下,项目信息可以从可选的指定pomFile中获取,但也可以使用命令行参数给出。

这意味着应该在使用此命令之前创建工件。如果您想将新编译的代码部署到本地存储库,请使用mvn clean install

请查看​​了解有关序列和生命周期的更多信息。我希望这可能会有所帮助。

Regards,

Charlee Ch。