打包方法在 Buildr 中无效
我正在尝试将 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-Vendor 或 Main-Class 属性都没有被覆盖。我按如下方式运行 Buildr:
jruby -S buildr clean package
我使用 jRuby 1.4.0 和 Buildr 1.3.5(作为 gem 安装)。有人对为什么会出现这种情况有任何想法吗?
I'm trying to package a scala project into a jar and write properties to the Manifest using Buildrs package() method.
The package seems to have no affect on the Manifest. Here's the build file:
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
And here's the resulting 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
Notice that neither the Implementation-Vendor or Main-Class property has been overwritten. I run Buildr as follows:
jruby -S buildr clean package
I'm using jRuby 1.4.0 and Buildr 1.3.5 (installed as a gem). Anyone any ideas on why this is the case?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我使用 buildr 1.3.5 + Ruby 1.8.6 快速测试了这一点并获得了正确的清单。我对构建文件做了一些小更改,这些更改似乎对于您的明显问题来说并不重要。这是我的测试构建文件:
这是生成的清单:
抱歉,我无法告诉你为什么它对我有用,但也许我的帖子会产生一些想法。
I tested this quickly using buildr 1.3.5 + Ruby 1.8.6 and got the correct manifest. I made a few small changes to the buildfile which seem like they shouldn't matter in regards to your manifest problem. Here is my test buildfile:
And here is the resulting manifest:
Sorry I can't tell you why it works for me but maybe my post will spawn some ideas.
尝试在 MRI 1.8.6 而不是 JRuby 下测试您的
buildfile
。有可能存在一个仅在该运行时出现的错误(尽管不太可能)。由于您使用 Scala 2.8,也可能会出现一些奇怪的情况。在 Scala 2.7 下尝试使用相同buildfile
的简单应用程序,看看是否有帮助。很抱歉,目前我只能给你一些疯狂的猜测。您的
buildfile
看起来应该可以工作,所以肯定发生了一些奇怪的事情。Try testing your
buildfile
under MRI 1.8.6 rather than JRuby. It's possible there is a bug which only comes out in that runtime (unlikely though). It's also possible that there is some weirdness arising due to your use of Scala 2.8. Try a simple app with the samebuildfile
under Scala 2.7 and see if that helps.I'm sorry that I can't give you any more than wild guesses at this point. Your
buildfile
looks like it should work, so something bizarre is definitely going on.我已经使用 C-Ruby 1.8.7 和 JRuby 1.4.0 进行了测试,但无法使用您提供的
buildfile
重现问题(两种情况下均使用 buildr 1.3.5)I've tested with both C-Ruby 1.8.7 and JRuby 1.4.0 and I can't reproduce the issue using the
buildfile
your provided (with buildr 1.3.5 in both cases)初次发生后我无法重现此问题。
I can't reproduce this issue after the initial occurrence.