github如何创建子模块_在github上发布Play 2模块

github如何创建子模块

现在,您毫无疑问地遵循了我先前Play 2编写模块的指南 ,我想您渴望向全世界展示您的编码技巧。 问题是-恐怕这是一个很大的问题-没有地方可以发布您的模块。 当我第一次开始编写Play模块时,该存储库已经设置好并且可以使用了-但是,它使用了一种自定义格式(最新的下载和解压缩格式)。 Play 1.2在某种程度上改变了这种情况,但是我不得不说我不喜欢这种依赖关系管理机制。 我该死的太老了,无法学习这些闪亮的新事物。

在Play 2中,情况再次发生变化,并且依赖机制与Maven和Ivy兼容。 我能听到企业上下欢喜的气氛。

但是,除非您碰巧托管了自己的Maven / Ivy回购仓库,或者感觉像是要破解Play生成的自动生成的工件模型,否则这仍然无法帮助您获得应有的荣耀和名声。 使用GitHub的Pages功能,在Play 2模块具有正式发布机制之前,需要手头的帮助。 很简单,我们将使用Play的publish-local任务在正确的目录结构中生成我们需要的所有文件,然后将该结构直接复制到GitHub页面中。 在GitHub中完成初始设置后,可以在不到一分钟的时间内完成这种发布。

在GitHub中创建存储库

例如,如果您的GitHub用户名是foo ,则创建一个名为foo .github.com的存储库会使您进入Pages –您在此处提交的内容将在http://foo.github.com上提供。 在这里显示文件没有GitHub的优点-您提交的内容是以其本机形式提供的。 提交一个HTML文件(我们称其为bar.html),然后将浏览器指向http://foo.github.com/bar.html,您将看到呈现HTML,而不是其来源。 这使它非常适合公开以原始格式表示的文件,例如,包含Play 2模块的jar文件。

因此,继续创建一个.github.com存储库,并将其克隆到您的工作区中,并CD入其中。 在这里,您可以复制(类似–稍后请看)一个存储库。

为了使事情变得更好,您应该创建的第一个目录是releases 。 如果您还想添加快照目录,请在此级别执行。

注意:首次在GitHub中创建存储库时,最多可能需要10分钟才能使它可用。 如果您尚未更改电子邮件首选项,则准备就绪后,您应该会收到一条通知。 同时,这不会阻止您提交到存储库。

在本地发布文件

让我们假设你的模块名称是手摇作为工件名称。 您的Build.scala看起来像这样:

import sbt._
import Keys._
import PlayProject._

object ApplicationBuild extends Build {

    val appName         = "hurdy"
    val appVersion      = "1.0"

    val appDependencies = Seq(
    )

    val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
    )
}

(mainLang值可能是其他值,具体取决于您的主要语言)。

在模块的根目录中,启动“播放”并在本地发布:

steve@hex:/tmp/hurdy$ play
[info] Loading project definition from /tmp/hurdy/project
[info] Set current project to hurdy (in build file:/tmp/hurdy/)
       _            _
 _ __ | | __ _ _  _| |
| '_ \| |/ _' | || |_|
|  __/|_|\____|\__ (_)
|_|            |__/ 

play! 2.0, http://www.playframework.org

> Type "help play" or "license" for more information.
> Type "exit" or use Ctrl+D to leave this console.

[hurdy] $ clean
[success] Total time: 0 s, completed Apr 21, 2012 9:49:00 AM
[hurdy] $ compile
[info] Updating {file:/tmp/hurdy/}hurdy...
[info] Done updating.
[info] Compiling 4 Scala sources and 2 Java sources to /tmp/hurdy/target/scala-2.9.1/classes...
[success] Total time: 7 s, completed Apr 21, 2012 9:49:08 AM
[hurdy] $ publish-local
[info] Packaging /tmp/hurdy/target/scala-2.9.1/hurdy_2.9.1-1.0-SNAPSHOT-sources.jar ...
[info] Done packaging.
[info] Wrote /tmp/hurdy/target/scala-2.9.1/hurdy_2.9.1-1.0-SNAPSHOT.pom
[info] :: delivering :: hurdy#hurdy_2.9.1;1.0-SNAPSHOT :: 1.0-SNAPSHOT :: release :: Sat Apr 21 09:49:12 CEST 2012
[info]  delivering ivy file to /tmp/hurdy/target/scala-2.9.1/ivy-1.0-SNAPSHOT.xml
[info] Generating API documentation for main sources...
[info] Packaging /tmp/hurdy/target/scala-2.9.1/hurdy_2.9.1-1.0-SNAPSHOT.jar ...
[info] Done packaging.
model contains 23 documentable templates
[info] API documentation generation successful.
[info] Packaging /tmp/hurdy/target/scala-2.9.1/hurdy_2.9.1-1.0-SNAPSHOT-javadoc.jar ...
[info] Done packaging.
[info]  published hurdy_2.9.1 to /home/steve/development/play/play-2.0/framework/../repository/local/hurdy/hurdy_2.9.1/1.0-SNAPSHOT/poms/hurdy_2.9.1.pom
[info]  published hurdy_2.9.1 to /home/steve/development/play/play-2.0/framework/../repository/local/hurdy/hurdy_2.9.1/1.0-SNAPSHOT/jars/hurdy_2.9.1.jar
[info]  published hurdy_2.9.1 to /home/steve/development/play/play-2.0/framework/../repository/local/hurdy/hurdy_2.9.1/1.0-SNAPSHOT/srcs/hurdy_2.9.1-sources.jar
[info]  published hurdy_2.9.1 to /home/steve/development/play/play-2.0/framework/../repository/local/hurdy/hurdy_2.9.1/1.0-SNAPSHOT/docs/hurdy_2.9.1-javadoc.jar
[info]  published ivy to /home/steve/development/play/play-2.0/framework/../repository/local/hurdy/hurdy_2.9.1/1.0-SNAPSHOT/ivys/ivy.xml
[success] Total time: 3 s, completed Apr 21, 2012 9:49:15 AM

将发布的文件移至GitHub

这些文件已发布到$ {PLAY_HOME} / repository / local ,并包含在hurdy目录中。 将整个目录移动到新的git存储库

cp -rv ${PLAY_HOME}/repository/local/hurdy <your username>.github.com/releases

将目录更改为.github.com ,然后将所有文件添加到git存储库中,提交并推送它们。

steve@hex:/tmp/schaloner.github.com$ git add .
steve@hex:/tmp/schaloner.github.com$ git commit -m "Added release 1.0 to repository"
steve@hex:/tmp/schaloner.github.com$ git push -u origin master

使用依赖

创建一个新项目(或打开一个旧项目),并添加依赖项及其位置。

object ApplicationBuild extends Build {

    val appName         = "my-cool-project"
    val appVersion      = "2.1"

    val appDependencies = Seq(
      "hurdy" %% "hurdy" % "1.0"
    )

    val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
      resolvers += Resolver.url("My GitHub Play Repository", url("http://<your username>.github.com/releases/"))(Resolver.ivyStylePatterns)
    )
}

注意: Play已以常春藤样式模式发布文件,因此需要在Build.scala中指定

在您的应用程序根目录中启动Play,然后运行“依赖项”任务。 如果一切顺利–我敢肯定,如果没有,我会通知我–您的模块将从GitHub提取并提供给您的应用程序。

指定组织

由于在Build.scala中未指定组织,因此将组织(存储库/本地/ hurdy /hurdy_2.9.1)与模块名称相同。 如果您想要一个组织,请将其添加到主要定义中:

val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
      organization := "com.example"
    )

现在,当您在本地发布时,文件将放置在repository / local / com.example /hurdy_2.9.1中。 在这种情况下,应将com.example目录从本地存储库复制到GitHub存储库。 使用依赖项的任何应用程序的Build.scala也会类似地不同:

val appDependencies = Seq(
      "com.example" %% "hurdy" % "1.0"
    )

现实世界证明这行得通

目前,使用http://schaloner.github.com作为存储库,可以使用此机制使用Deadbolt 2。 这里有发行版和快照版本,因此示例应用程序的Build scala看起来像这样:

import sbt._
import Keys._
import PlayProject._

object ApplicationBuild extends Build {

    val appName         = "deadbolt-usage"
    val appVersion      = "1.1.3-SNAPSHOT"

    val appDependencies = Seq(
      "be.objectify" %% "deadbolt-2" % "1.1.3-SNAPSHOT"
    )

    val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
      // Change this to point to your local play repository
      resolvers += Resolver.url("Objectify Play Repository", url("http://schaloner.github.com/releases/"))(Resolver.ivyStylePatterns),
      resolvers += Resolver.url("Objectify Play Repository", url("http://schaloner.github.com/snapshots/"))(Resolver.ivyStylePatterns)
    )
}

如果我将所需版本从1.1.3-SNAPSHOT(位于快照/目录中)更改为1.1.3(将位于releases /目录中),则依赖关系将得到正确解决。

参考: Objective博客JCG合作伙伴 Steve Chaloner在github上发布了Play 2模块


翻译自: https://www.javacodegeeks.com/2012/05/publishing-play-2-modules-on-github.html

github如何创建子模块

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值