无法在play 2项目中更新maven依赖项

时间:2018-03-27 11:05:59

标签: java maven playframework dependencies sbt

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

我在play 2.3中有另一个使用此依赖项的项目。但是,当我在build.sbt中提到版本号时,它会下载该版本。但是当我提到“最新的整合”时。或者' latest.release',play / sbt不要从nexus repo下载它。我尝试了一切./activator reload,更新命令。没有为我工作。

以下是我的文件, 龟豆/ 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>

Build.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时,我都不想更新版本号。

例如,如果在nexus repo上部署6.5并在本地计算机上安装6.5.1,则播放项目应该拾取6.5.1。

1 个答案:

答案 0 :(得分:0)

Ivy的latest.integrationlatest.release是maven不支持的“动态修订版”(我正在成功使用SBT和我们的常春藤资源库)。

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

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