当前位置: 首页 > 知识库问答 >
问题:

如何在本地而不是maven central上安装项目的标记版本(即不是快照)?

韦繁
2023-03-14

所以我做了mvn释放:清洁和mvn释放:准备。

因此,我的subversion上有一个干净的标签,上面有我的工件的最新版本1.3.3。

现在,我想在本地maven repo(.m2)上安装该版本1.3.3,而不是在远程中央maven repo上。

如何做到这一点?

我是否需要更改设置。xml???

我是否需要运行mvn release:使用某种本地选项执行???现在,如果我运行mvn release:perform,它将尝试将我的工件发布到maven中央repo,这正是我不想要的。我想在本地将其发布到我的其他本地项目中,因此我可以:

<dependency>
  <groupId>com.mycompany</groupId>
  <artifactId>myartifact</artifactId>
  <version>1.3.3</version>
</dependency>

有趣的是,快照工作正常:

<dependency>
      <groupId>com.mycompany</groupId>
      <artifactId>myartifact</artifactId>
      <version>1.3.4-SNAPSHOT</version>
    </dependency>

因此,我正在安装快照,但不是完整版本。

这是我的设置。xml:

<settings>

  <profiles>

  <profile>
     <id>allow-snapshots</id>
        <activation><activeByDefault>true</activeByDefault></activation>
     <repositories>
       <repository>
         <id>snapshots-repo</id>
         <url>https://oss.sonatype.org/content/repositories/snapshots</url>
         <releases><enabled>false</enabled></releases>
         <snapshots><enabled>true</enabled></snapshots>
       </repository>
     </repositories>
   </profile>

    <profile>
      <id>mac-profile</id>
      <properties>

        <project.build.sourceEncoding>
          UTF-8
        </project.build.sourceEncoding>

        <project.reporting.outputEncoding>
          UTF-8
        </project.reporting.outputEncoding>

      </properties>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>mac-profile</activeProfile>
  </activeProfiles>

  <pluginGroups>
    <pluginGroup>org.sonatype.plugins</pluginGroup>
  </pluginGroups>
  <servers>
    <server>
      <id>sonatype-nexus-snapshots</id>
      <username>myUsername</username>
      <password>myPassword</password>
    </server>
    <server>
      <id>sonatype-nexus-staging</id>
      <username>myUsername</username>
      <password>myPassword</password>
    </server>
  </servers>
</settings>

共有3个答案

曾沛
2023-03-14

我也遇到过类似的情况,在执行mvn发布:清理发布:准备时,我需要将发布jar安装到本地存储库中。以下几点对我有用:

xml prettyprint-override">    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
        <version>2.5.3</version>
        <configuration>
            <!-- this should do the trick -->
            <preparationGoals>install</preparationGoals>
        </configuration>
    </plugin>
叶国兴
2023-03-14

您所要做的就是:

mvn clean install 
拓拔弘扬
2023-03-14

最简单的方法是签出另一个目录中的标记,然后运行

mvn install

但是,如果您想使用发布:执行,您需要更改目标。

http://maven.apache.org/maven-release/maven-release-plugin/perform-mojo.html#goals是参数,让它说install而不是部署

 类似资料:
  • 我试图安装flake8包使用pip3,它似乎拒绝安装,因为已经安装在一个本地位置。 如何强制全局安装(系统级)? 请注意,我更喜欢一个通用的解决方案(应该在Debian、OSX甚至Windows上工作),一个应该在任何平台上使用的解决方案,所以我不想自己指定目标。 出于某种奇怪的原因,它的行为就像我已经指定了,而在我的情况下,我没有指定。 我能够在全球范围内安装包的唯一方法是首先删除它,然后在此之

  • 我有以下项目结构: 框架 框架父pom 构架某事 在框架-父母-pom的pom.xml中,我定义了以下插件: 并遵循SCM: 当我运行以下命令时。。。 ……一切似乎都很顺利。 在本地创建了带有发布版本的JAR,并且POM很好地更新到下一个SNAPSHOT版本。同样在SVN中,乍一看似乎还可以。标签已创建,其中包含所有框架项目。 但是,当查看标记的POM时,我看到它们仍然具有初始快照版本作为版本。这

  • 我试图在我的(一组软件包列表)中安装所有依赖项。我所做的: 已创建虚拟环境 所有软件包都已安装,但当使用检查时,我什么都没有。尝试停用虚拟环境,并再次使,我已全部安装完毕。 我有点困惑,因为我非常确定我的虚拟环境被激活了,而且我在做时有正确的pip路径()。另外,我尝试一个接一个地安装依赖项,它们被安装在虚拟环境中 我不能一个接一个地做所有这些,我需要在某个地方复制安装。有人能帮忙吗?

  • 问题内容: 我正在处理的代码可以在Windows XP和Mac OS X上完美运行。在CentOS(以及Fedora和Ubuntu)上进行测试时,它无法正常工作。搜索网使我得出结论,那就是引起问题的那一版本。因此,现在我需要Zend Lucene 的版本才能正常工作。 我已经下载libiconv的,并配置它,,然后没有任何错误。似乎已成功安装,因为执行说版本是。虽然简单仍然给出了版本。 然后,我使

  • 输出为: matplotlib.figure.figure位于0x536ea70 我想看到空的情节,我正在通过pycon教程相同的代码产生了一个空的情节。

  • 我错误地升级了我的flutter版本,我需要回到1.20.3版本,因为我现在使用的版本不稳定。我使用第一个选项(snap)下载flutter,而不是手动下载,所以我不知道如何将我的版本降级到1.20.3。拜托,有人知道怎么做?