0

我正在学习 Maven 并试图理解事物的顺序。据我了解,mvn clean install使用默认 jar 构建存储库,其中install生成我稍后需要的 .zip。

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

另外,我应该按什么顺序做事?我想要的只是最终的 .zip,其中包括自定义 jar?

4

2 回答 2

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

于 2012-06-05T05:40:00.627 回答
0

关于maven-install-plugin 网站,他们提到如下: -

install:install-file: 主要用于将外部创建的工件及其 POM 安装到本地存储库中。在这种情况下,项目信息可以从可选指定的 pomFile 中获取,但也可以使用命令行参数给出。

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

有关序列和生命周期的更多信息,请查看构建生命周期简介。我希望这可能会有所帮助。

问候,

查理·Ch。

于 2012-06-05T05:50:02.947 回答