4

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

该软件包似乎对 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

这是生成的清单:

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-VendorMain-Class属性都没有被覆盖。我按如下方式运行 Buildr:

jruby -S buildr clean package

我正在使用 jRuby 1.4.0 和 Buildr 1.3.5(作为 gem 安装)。有人对为什么会这样有任何想法吗?

4

4 回答 4

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

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

于 2010-01-16T16:08:31.470 回答
0

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

很抱歉,在这一点上我只能给你疯狂的猜测。你buildfile看起来应该可以工作,所以肯定会发生一些奇怪的事情。

于 2010-01-16T18:35:18.263 回答
0

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

于 2010-01-16T23:21:41.567 回答
0

在最初发生后,我无法重现此问题。

于 2010-02-01T20:52:10.017 回答