Playframework 将播放模块发布到内部maven存储库

Playframework 将播放模块发布到内部maven存储库,playframework,nexus,Playframework,Nexus,我可以在本地构建一个Play framework模块并在本地使用它,但如何将其发布到内部(Nexus)Maven存储库(而不是公共Play存储库),以便Play能够找到它?我自己不知道Play framework,但通常有两种选择。游戏是否包含自己的Maven版本?如果是这样,您可以将分发管理设置配置到Play框架的pom.xml,只需使用“mvn部署”。只需按照以下maven deploy plugin文档中的说明配置Nexus即可: 如果没有Maven build for Play框架,您

我可以在本地构建一个Play framework模块并在本地使用它,但如何将其发布到内部(Nexus)Maven存储库(而不是公共Play存储库),以便Play能够找到它?

我自己不知道Play framework,但通常有两种选择。游戏是否包含自己的Maven版本?如果是这样,您可以将分发管理设置配置到Play框架的pom.xml,只需使用“mvn部署”。只需按照以下maven deploy plugin文档中的说明配置Nexus即可:

如果没有Maven build for Play框架,您可以使用“deploy:deploy file”目标来手动将JAR部署到Nexus


我记得一开始获取deployfile命令的所有必要参数有点棘手。耐心点:)

在脚本中,您可以使用此命令将工件推送到nexus存储库,用户必须有权在nexus上推送工件

curl --request POST --user user:passwd http://mynexus/nexus/content/repositories/releases/com/myorg/$APPLICATION/$VERSION/$APPLICATION-$VERSION.zip -F "file=@dist/$APPLICATION-$VERSION.zip"  --verbose
因此,事实证明有很多不同的解决方案。剧本文档中甚至有一个暗示,但据报道有点不正确


我最终使用的解决方案是将发布任务添加到使用ivy的
build.xml
,并编写一个
ivy.xml
文件,将工件文件类型设置为
bundle
,文件扩展名设置为
zip

我成功地将play 2.0模块构建到一个私有maven服务器(在我的例子中为Artificatory)在project/Build.scala中使用以下配置:

object ApplicationBuild extends Build {

    /* Stuff about your app (version,name etc) and dependencies */


    val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
          organization := "org.myorg"
    ).settings(
          publishTo := Some("My Realm" at "https://myserver.com/libs-release-local")
    ).settings(
          credentials += Credentials("My Realm", "myserver.com", "username", "password")
    )
}
然后打字

播放发布

在项目目录中

编辑

resolvers += "My Server" at "https://myserver.com/libs-release-local"

credentials += Credentials("Artifactory Realm", "myserver.com", "username", "password")
对于重头戏2.3,在build.sbt中添加以下内容

resolvers += "My Server" at "https://myserver.com/libs-release-local"

credentials += Credentials("Artifactory Realm", "myserver.com", "username", "password")
然后发行

sbt发布


不幸的是,Play使用Ivy(与Maven兼容)下载普通库依赖项,但不下载Play模块。为此,它使用了自己开发的python代码,这与Maven不兼容。啊,不,这是旧机制
play dependencies
应该可以工作,但由于某些原因,它无法安装模块。这不会创建pom文件,是吗?不,它只是上载模块zip文件,因此,如果在依赖项中正确配置本地存储库,play可以在使用play deps时下载它。ymlAnd如何做到这一点?根据文档页面上的评论,这里给出的示例不起作用。这不适用于常春藤。可能会使用
dependencies.yml
中的条目,但我还没有检查。