在Buildr中没有效果的打包方法

时间:2010-01-16 09:00:45

标签: scala jar manifest buildr

我正在尝试将scala项目打包到jar中,并使用Buildrs package()方法将属性写入Manifest。

该软件包似乎对Manifest没有任何影响。这是构建文件:

VERSION_NUMBER = "1.0.0"
GROUP = "Green"
COPYRIGHT = "Green CopyRight"

require 'buildr/scala'

Buildr::Scala::Scalac::REQUIRES.library = '2.8.0-SNAPSHOT'
Buildr::Scala::Scalac::REQUIRES.compiler = '2.8.0-SNAPSHOT'
Java.classpath.reject! { |c| c.to_s.index('scala') }
Java.classpath << Buildr::Scala::Scalac::REQUIRES

ENV['USE_FSC'] = 'yes'

repositories.remote << "http://www.ibiblio.org/maven2/"

desc "The Green project"
define "Green" do
    project.version = VERSION_NUMBER
    project.group = GROUP
    package(:jar).with :manifest=>manifest.merge(
        'Main-Class'=>'com.acme.Main',
        'Implementation-Vendor'=>COPYRIGHT
    )
end

这是由此产生的Manifest:

Build-By: brianheylin
Build-Jdk: 1.6.0_17
Implementation-Title: The Green project
Implementation-Version: 
Implementation-Vendor: 
Main-Class: green.GreenMain
Manifest-Version: 1.0
Created-By: Buildr

请注意, Implementation-Vendor Main-Class 属性均未被覆盖。我按如下方式运行Buildr:

jruby -S buildr clean package

我正在使用jRuby 1.4.0和Buildr 1.3.5(作为gem安装)。任何有关为什么会出现这种情况的想法?

4 个答案:

答案 0 :(得分:1)

我使用buildr 1.3.5 + Ruby 1.8.6快速测试了这个并得到了正确的清单。我对构建文件做了一些小改动,看起来它们对你的清单问题无关紧要。这是我的测试构建文件:

ENV['JAVA_HOME'] = 'C:\Java\32\jdk1.6.0_17'

VERSION_NUMBER = "1.0.0"
GROUP = "Green"
COPYRIGHT = "Green CopyRight"

require 'buildr/scala'

desc "The Green project"
define "Green" do
    project.version = VERSION_NUMBER
    project.group = GROUP
    package(:jar).with :manifest=>manifest.merge(
        'Main-Class'=>'com.acme.Main',
        'Implementation-Vendor'=>COPYRIGHT
    )
end

以下是结果清单:

Implementation-Vendor: Green CopyRight
Manifest-Version: 1.0
Build-By: Travis
Created-By: Buildr
Build-Jdk: 1.6.0_17
Implementation-Title: The Green project
Implementation-Version: 
Main-Class: com.acme.Main

对不起,我不能告诉你为什么它对我有用,但也许我的帖子会产生一些想法。

答案 1 :(得分:0)

尝试在MRI 1.8.6而不是JRuby下测试buildfile。可能存在一个只在该运行时出现的错误(尽管不太可能)。由于您使用Scala 2.8,也可能会出现一些奇怪现象。在Scala 2.7下尝试使用相同buildfile的简单应用,看看是否有帮助。

对不起,我现在不能再给你猜测了。您的buildfile看起来应该工作,所以奇怪的事情肯定会发生。

答案 2 :(得分:0)

我已经使用C-Ruby 1.8.7和JRuby 1.4.0进行了测试,我无法使用您提供的buildfile(在两种情况下都使用buildr 1.3.5)重现该问题

答案 3 :(得分:0)

首次出现后我无法重现此问题。