2012-01-25 39 views
7

Tôi đang sử dụng sbt-assembly để tạo jar có thể chạy được, nhưng ứng dụng của tôi bị treo vì jai imageio tải tên nhà cung cấp từ tệp MANIFEST.MF. Nếu tôi tự chỉnh sửa META-INF tập tin/MANIFEST.MF từ:Thêm thông tin nhà cung cấp vào MANIFEST.MF bằng cách sử dụng sbt-assembly

Manifest-Version: 1.0 
Main-Class: myMainClass 

để

Implementation-Vendor: foo 
Implementation-Title: bar 
Implementation-Version: 1.0 
Manifest-Version: 1.0 
Main-Class: myMainClass 

Tất cả mọi thứ hoạt động tốt.

Làm cách nào để định cấu hình sbt hoặc sbt-assembly để bao gồm thông tin triển khai bổ sung đó trong bình? Hay có cách nào khác xung quanh điều này?

(ps: Các tham chiếu đến nơi nó nhìn lên những thông tin gói: http://www.java.net/external?url=http://www.java2s.com/Open-Source/Java-Document/6.0-JDK-Modules/Java-Advanced-Imaging/com/sun/media/imageioimpl/common/PackageUtil.java.htm)

Trả lời

8

Tôi đang sử dụng SBT 0.11.2 và, SBT cho biết thêm thông tin manifest vào jar mà không cần bất kỳ cấu hình thêm :), Tôi không chắc chắn tại sao bạn có vấn đề đó.

Đây là một MANIFEST.MF mẫu jar squryl mà tôi đã xây dựng tại địa phương

Manifest-Version: 1.0 
Implementation-Vendor: org.squeryl 
Implementation-Title: squeryl 
Implementation-Version: 0.9.5-rc1 
Implementation-Vendor-Id: org.squeryl 
Specification-Vendor: org.squeryl 
Specification-Title: squeryl 
Specification-Version: 0.9.5-rc1 
Main-Class: org.squeryl.logging.UsageProfileConsolidator 

nhưng điều này có thể được cấu hình trong build.sbt hoặc Build.scala

ví dụ

import sbt._ 
    import Keys._ 
    import sbt.Package.ManifestAttributes 

    //...... 

    //......  

    lazy val baseSettings = Defaults.defaultSettings ++ Seq(
    version := ProjectVersion, 
    organization := Organization, 
    scalaVersion := ScalaVersion, 
    packageOptions := Seq(ManifestAttributes(
         ("Implementation-Vendor", "myCompany"), 
         ("Implementation-Title", "myLib")))) 
0

Vấn đề là lắp ráp sbt không thêm các khóa mặc định vào MANIFEST.MF. sbt gói mặt khác làm như vậy, mà có lẽ của mình những gì Jestan Nirojan sử dụng.

Tôi đã tạo sự cố cho dự án plugin lắp ráp sbt trên github. Bạn có thể muốn thêm nhận xét để tăng cơ hội được sửa.

See this

Các vấn đề liên quan