【问题标题】:Not able to update maven dependencies in play 2 project无法在 play 2 项目中更新 Maven 依赖项
【发布时间】:2023-03-31 09:21:01
【问题描述】:

我有一个 maven 3 项目“turtle-beans”。我将它部署在来自 jenkins 服务器的 nexus repo 上。例如 'turtle-beans-6.6' 在 maven 版本中部署在 nexus.company.com 上

我在 play 2.3 中有另一个使用此依赖项的项目。但是,当我在 build.sbt 中提到版本号时,它会下载该版本。但是当我提到“latest.integration”或“latest.release”时,play/sbt 不要从 nexus repo 下载它。我尝试了一切。/激活器重新加载,更新命令。不适合我。

以下是我的文件, 龟豆/pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.turtle</groupId>
  <artifactId>turtle-beans</artifactId>
  <packaging>jar</packaging>
  <version>6.5</version>
  <name>turtle-beans</name>
  <url>http://maven.apache.org</url>

  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <distributionManagement>
    <repository>
      <id>nexus</id>
      <name>Releases</name>
      <url>http://nexus.turtlemint.com/repository/maven-releases</url>
    </repository>
    <snapshotRepository>
      <id>nexus</id>
      <name>Snapshot</name>
      <url>http://nexus.turtlemint.com/repository/maven-snapshots</url>
    </snapshotRepository>
  </distributionManagement>

 <!--  
 -->
  <build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>versions-maven-plugin</artifactId>
            <version>2.1</version>
        </plugin>
       </plugins>
  </build>
</project>

构建.sbt

//import de.johoop.findbugs4sbt.FindBugs._
//import de.johoop.findbugs4sbt._

name := """turtlemint"""

version := "1.0-SNAPSHOT"

lazy val root = (project in file(".")).enablePlugins(PlayJava)

scalaVersion := "2.11.6"

resolvers += Resolver.mavenLocal
resolvers += "Nexus" at "http://nexus.turtlemint.com/repository/maven-public/"


libraryDependencies ++= Seq(
  javaJdbc,
  javaEbean,
  cache,
  javaWs,
  javaJpa,
  filters,
  "org.json" % "org.json" % "chargebee-1.0",
  "org.mongodb" % "mongo-java-driver" % "3.4.3",
  "org.springframework.data" % "spring-data-elasticsearch" % "1.3.0.RELEASE",
  "org.springframework.data" % "spring-data-mongodb" % "1.9.2.RELEASE",
  "com.turtle" % "turtle-beans" % "latest-integration",
  "commons-beanutils" % "commons-beanutils" % "1.9.3"
)

transitiveClassifiers := Seq("sources")

我想要实现的是,Play 项目应该能够在本地安装的 jar 和部署在 nexus repo 之间动态获取最新的可用版本。我不想每次在 nexus repo 或本地机器上部署或安装新 jar 时都更新版本号。

例如,如果 6.5 部署在 nexus repo 上,并且 6.5.1 安装在本地机器上,那么 play 项目应该选择 6.5.1。

【问题讨论】:

    标签: java maven playframework dependencies sbt


    【解决方案1】:

    Ivy 的 latest.integrationlatest.release 是 maven 不支持的“动态修订版”(我已成功将其与 SBT 和我们的 ivy 存储库一起使用)。

    这是因为 maven 没有将所需的工件“状态”发布到存储库,因为它不知道; IE。 pom.xml中没有这个概念。

    使用 maven,您可以改用基于时间的快照版本。

    【讨论】:

    • 谢谢,试试这个时间戳方法
    猜你喜欢
    • 1970-01-01
    • 2017-04-21
    • 2019-11-07
    • 1970-01-01
    • 2013-04-13
    • 2017-03-03
    • 2018-02-14
    • 2021-09-05
    • 1970-01-01
    相关资源
    最近更新 更多