2010-01-16 42 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