4

scala プロジェクトを jar にパッケージ化し、Buildrs のpackage()メソッドを使用してプロパティをマニフェストに書き込もうとしています。

パッケージはマニフェストに影響を与えないようです。ビルドファイルは次のとおりです。

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プロパティも上書きされていないことに注意してください。次のように Builder を実行します。

jruby -S buildr clean package

jRuby 1.4.0 と Buildr 1.3.5 (gem としてインストール) を使用しています。なぜこれが当てはまるのか、誰にでもアイデアはありますか?

4

4 に答える 4

1

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:

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

And here is the resulting manifest:

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

Sorry I can't tell you why it works for me but maybe my post will spawn some ideas.

于 2010-01-16T16:08:31.470 に答える
0

C-Ruby 1.8.7 と JRuby 1.4.0 の両方でテストしましたが、提供されたものを使用して問題を再現できませんbuildfile(どちらの場合も buildr 1.3.5 を使用)。

于 2010-01-16T23:21:41.567 に答える
0

I can't reproduce this issue after the initial occurrence.

于 2010-02-01T20:52:10.017 に答える
0

buildfileJRuby ではなく MRI 1.8.6 でテストしてみてください。そのランタイムでのみ発生するバグがある可能性があります (可能性は低いですが)。また、Scala 2.8 を使用しているため、おかしなことが発生する可能性もあります。buildfileScala 2.7 で同じものを使って簡単なアプリを試してみて、それが役立つかどうかを確認してください。

申し訳ありませんが、現時点では勝手な推測しかできません。あなたはそれbuildfileうまくいくように見えるので、何か奇妙なことが起こっていることは間違いありません.

于 2010-01-16T18:35:18.263 に答える