如何为Maven项目创建PPA?


8

我想尝试创建自己的PPA。我拥有的项目是使用maven构建的Java项目。到目前为止,这是我已经完成的工作:

  • 创建了PPA。
  • 在启动板上设置一个新项目。
  • 添加了一个从SVN存储库导入我的项目的分支。
  • 为该分支创建了一个配方,将该配方发布到我的PPA中。

这就是我卡住的地方。

我已经阅读了这些教程,并且在Google上搜索了很多内容;但是,我无法找到如何构建项目的方法。

我可以开始建立分支;但是,正如我所料,它失败了。我想我必须将一些元信息(如makefile)放入存储库中。甚至可以在Launchpad上构建和打包Maven项目吗?我还尝试使用bzr dh-make和在本地构建.deb文件debuildbzr dh-make在文件./debian夹中创建了很多文件,但 debuild失败了。我想如果我在项目中指定了正确的元信息,它将可以正常工作,因此它与Launchpad上的问题相同。

我知道这是一个非常普遍的问题,但是我认为.deb即使您没有像我这样的“异国情调”案例,也缺少用于打包文件的适当教程。

把它们加起来:

我必须在项目中提供哪些文件/信息,以便可以正确构建和打包它们?

任何帮助将是巨大的:-)


1
有可能。我正在寻找解决方案,但这需要一些时间
RobotHumans 2012年

所以???怎么做 这真让我抓狂。
2012年

@ i30817-抱歉,我没有参加defcon,现在我正在为ubuntu开发游戏。我会在其他要求允许的范围内尽快填写答案
RobotHumans 2012年

我正在尝试调用debuild以查看它是否能够在上传到ppa之前构建deb。没有运气:dh build-使用javahelper dh_testdir dh_auto_configure jh_linkjars dh_auto_build jh_build dh_auto_test fakeroot debian / rules binary dh binary-使用javahelper dh_testroot dh_prep dh_installdirs dh_auto_install dh_install cp / t:无法注册书/目录dh_install:cp -a debian / tmp / bookjar.jar debian / bookjar / usr / share / bookjar /返回的退出代码1 make:*** [binary] Error 2
i30817

@ aking1012不要着急。我现在也没有时间去做那个项目。
安德烈·斯坦内克(AndréStannek)2012年

Answers:


2

查看我的bookjar项目:http : //code.google.com/p/bookjar/source/browse/

特别是debian目录(尤其是debian / package.sh文件)和build.xml(ant)文件。在该文件中,有一个新的目标“上传”,它将可构建的工件上传到启动板构建机器人。

我使用的是常春藤和netbeans蚂蚁基础设施,因此对您来说可能会略有不同。但是,可以肯定的是,您不能从远程构建服务器中使用ivy或maven。您需要以代码或jar的形式上传使用的所有库。ivy:retrive将文件下载到current_dir / lib,因此我在netbeans中的项目已设置为在其中查找其库(nblibraries.properties是该netbeans基础结构的一部分)。阅读build.xml了解详细信息(基本上,debian / rules文件调用一个特殊的ant目标以在服务器中构建该目标,该目标不会尝试对jar文件进行符号链接-因为它们已经被复制到那里了)。

我还利用我的项目的package.sh充分利用了hg日志来构建变更日志文件,因此,如果您想要相同程度的自动化并且不使用hg(在事实上,我认为我的变更日志通过将每个变更作为“次要”版本来改变debian变更日志的规则)。


听起来很有希望,但可能需要几天的时间,我才能对其进行研究。
安德烈·斯坦内克(AndréStannek)2012年

忘记了:在这种方案中,您负责将文件上传到ppa版本,而不是将ppa链接到带有看门狗文件的代码存储库并定期构建。我更喜欢这种方式,甚至没有尝试做其他事情,但是这可能是可能的。我的PPA就是以此构建的(经过13次失败尝试!)。也要小心,因为您的变更日志必须采用OCD原始顺序才能被debuild接受-这意味着您的hg日志也必须如此-我必须重新初始化存储库,因为“用户”没有遵循准则
i30817 2012年

三个月后这是一个很大总比没有好;-)
安德烈Stannek

您可能不想使用hg log> changelog技巧。它有一些可疑的要求,例如除了数字(发行版)之外没有任何hg标记,或者必须让所有的提交提交者都遵循debian准则(而且hg不允许更改历史记录...如果发生这种情况,则您可以使用复杂的扩展名或重新初始化存储库...,以及在任何情况下进行软管远程克隆)。这样做的好处是,即使您进行管理,也不必维护变更日志。
2012年

仍然找不到时间研究它:-(只是想让你知道我没有忘记这个问题。
AndréStannek
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.