【问题标题】:Tell maven to copy artifacts from directory other than maven-repo告诉 maven 从 maven-repo 以外的目录复制工件
【发布时间】:2013-05-10 23:42:16
【问题描述】:


我是一个使用 maven 的新手。
我使用 maven 作为我的构建工具。当我使用 maven 构建代码时,我将构建期间创建的工件(即 jar 和 zip)复制到本地 maven-repo 以及另一个备份文件夹。
我使用 maven 从我的 maven-repo 复制工件到服务器,我必须在其中部署它们。我使用的 pom 会自动选择最新的工件并将它们部署在所需的服务器上。
但是,我想做的是告诉 maven 有时从不同的文件夹中选择工件,而不是从 maven-repo 中选择。

我试过了,但无济于事。请帮忙:)

【问题讨论】:

  • 另外,请注意我使用的是 maven-dependency-plugin
  • “其他目录”只是一个“普通目录”还是您可以假设它是另一个 Maven 存储库?
  • @dratewka 不,不能假定另一个目录是另一个 maven-repo

标签: maven


【解决方案1】:

从技术上讲,答案是否定的,你不能告诉 maven 从任意文件夹中获取工件。这是因为 maven 背后的整个理念是,您始终可以重现您的构建,并且您确切地知道所有依赖项的来源。

我建议您尝试 maven 安装您拥有的其他工件。这会将它们拉入您的存储库,并且 Maven 将从那里正常工作。您可以尝试愚弄 maven,但这有点违背了使用 maven 的全部目的。

【讨论】:

    【解决方案2】:

    我认为在你的做事方式和 Maven 之间最好的折衷方案是依赖 Maven 的本地存储库,通常位于你家下的 .m2/repository 目录中,作为你的备份文件夹。这样一来,进行备份和进行部署之间的区别就相当于在第一种情况下使用mvn install,在第二种情况下使用mvn deploy

    使用 Maven,您可以以不同于 Maven 开发人员预期的方式做很多事情,但坚持 Maven 的约定要容易得多。

    【讨论】:

      【解决方案3】:

      同意 Chris,这与 maven 的预期用法相反,但是... 在你的 pom.xml 中试试这个

      <repositories>
          <repository>
              <id>my-internal-site1</id>
              <url>file:${project.basedir}\cometrepo</url>
          </repository>
      </repositories>
      

      将网址更改为您的本地文件夹。

      在文件夹中,引用的工件应该与它们在 pom 中引用的结构相同。

      希望对您有所帮助。

      【讨论】:

      • 大家好,非常感谢您的所有回复:)...@sumit 上述更改是否只是用任意目录覆盖了我的本地 maven-repository?
      • 它使用两者,首先是您的设置存储库,然后是这个 pom 存储库来解析不在您的设置存储库中的工件。
      • 嗨@sumit ... 参数必须包含在配置文件下的 settings.xml 或我用于部署的 pom.xml 中。我无法弄清楚它在 pom 中的用法我用于部署的.xml...一个好心的建议:)
      • 在你的 pom.xml 项目下
      猜你喜欢
      • 1970-01-01
      • 2011-06-17
      • 2011-10-27
      • 1970-01-01
      • 2012-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多