2010-01-16 85 views
4

没有效果我想Scala的项目打包成一个罐子,用Buildrs 包()方法写特性的清单。包装方法具有Buildr

包似乎对舱单没有影响。下面是构建文件:

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 

注意,无论是实现厂商主类财产已被覆盖。我运行Buildr如下:

jruby -S buildr clean package 

我使用jRuby 1.4.0和Buildr 1.3.5(安装为gem)。任何人有任何想法,为什么这是这种情况?

回答

0

我可以在第一次发生后不再重现这个问题。

1

我测试了这个快速使用buildr 1.3.5 +红宝石1.8.6,并得到正确的体现。我对buildfile进行了一些小的修改,看起来他们对你的清单问题应该没有关系。这里是我的测试生成文件:

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

谢谢特拉维斯,我沿着相同的路线丹​​尼尔想,这似乎是特定的JRuby或斯卡拉2.8使用的错误。 – 2010-01-16 19:01:20

+0

尽管在项目中定义了为什么Implementation-Version在这里丢失了? – Trejkaz 2014-06-15 03:57:19

0

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

我很抱歉,我不能给你比胡乱猜测更多的在这一点上。你的buildfile看起来像应该工作,所以有些奇怪的是肯定会继续。

+0

谢谢丹尼尔,那是我的下一个停靠港。但第一次......晚餐时间:) – 2010-01-16 19:00:28

0

我既C-的Ruby 1.8.7和JRuby 1.4.0测试和使用,我不能重现该问题的buildfile您提供的(在这两种情况下buildr 1.3.5)

+0

谢谢亚历克斯,我现在处于我无法复制它的情况。如果我正在做一些愚蠢的事情导致它,那么我也不会是什么:)我想知道这个问题最好的办法是,回答我无法重现?或删除它? – 2010-01-17 08:39:17

+0

是的,回答您无法复制并稍后打开它。谁知道,也许别人会遇到这个问题。 (我的0.02c) – 2010-01-18 23:54:15