【问题标题】:Building maven project with custom version of artifact instead of the one from repo使用自定义版本的工件而不是来自 repo 的工件构建 maven 项目
【发布时间】:2012-10-08 07:52:38
【问题描述】:

我是 maven 新手,对于小问题很抱歉:需要使用我的工件版本而不是来自 repo 的工件来构建 maven 项目

更详细: 我从 github 下载了 jboss 源代码并使用 maven 3 构建它们。太棒了!我需要对名为“picketbox”的 jboss 依赖项进行一些更改。现在它是jboss的“pom.xml”中的一个神器。

我在 my_picketbox.jar 文件中构建了我自己版本的纠察箱。 如何告诉 maven 使用我的 .jar 而不是来自 repo 的那个?

【问题讨论】:

    标签: java maven jboss maven-3


    【解决方案1】:

    也许我遗漏了一些东西,但如果您明确地重命名了工件,那么只需在相关的 JBoss POM 文件中将 picketbox 替换为 my_picketbox

    <dependency>
        <groupId>...</groupId>
        <artifactId>my_picketbox</artifactId>
        <version>...</version>
    </dependency>
    

    当然,您可以通过mvn install'ing 来确保您的工件在您的本地仓库中。

    干杯,

    【讨论】:

      【解决方案2】:

      我会使用 maven-install 插件安装 jar 文件。

      http://maven.apache.org/plugins/maven-install-plugin/install-file-mojo.html

      【讨论】:

        【解决方案3】:

        首先,将您的 Picketbox 版本安装到您​​的本地 Maven 存储库中。如果您的自定义版本是 Maven 项目,您可以通过运行来做到这一点

        mvn install
        

        如果您的自定义 Picketbox 版本不是 Maven 项目,请将 Jar 本身安装到您的本地 Maven 存储库中,如下所示:

        mvn install:install-file -Dfile=my_picketbox.jar -DgroupId=org.picketbox -DartifactId=my_picketbox -Dversion=2.3 -Dpackaging=jar
        

        然后更改 JBoss 所依赖的 Picketbox 版本,方法是将这个 sn-p 添加到您正在构建的 JBoss 项目的 pom.xml 文件中(用这个替换现有的对 pocketbox 的依赖):

        <dependency>
            <groupId>org.picketbox</groupId>
            <artifactId>my_picketbox</artifactId>
            <version>2.3</version>
        </dependency>
        

        【讨论】:

          【解决方案4】:
          <dependency>
              <groupId>xxx</groupId>
              <artifactId>xxx</artifactId>
              <version>x.x.x</version>
              <scope>system</scope>
              <systemPath>${project.basedir}/lib/xxxx.jar</systemPath>
          </dependency>
          

          这允许您引用未存储在本地而不是 maven Central 的库。

          【讨论】:

            【解决方案5】:

            Maven 获取 POM 文件中指定的内容;请注意,包括您所写的依赖项在内的 POM 可能会被埋得很深,甚至不会在您下载的源代码中。

            在您的项目树中搜索相关工件并将其版本号替换为您的版本。如果这没有帮助,请按照 Nils 在另一个答案中所说的进行操作,但请记住以 原始版本 安装工件(您可能必须先在本地存储库中找到它并将其删除)。

            【讨论】:

              猜你喜欢
              • 2023-03-15
              • 2014-11-05
              • 1970-01-01
              • 1970-01-01
              • 2010-09-14
              • 1970-01-01
              • 1970-01-01
              • 2011-04-24
              • 1970-01-01
              相关资源
              最近更新 更多