Pregunta

Estoy tratando de empaquetar un proyecto Scala en un frasco y escribir propiedades al Manifiesto utilizando Buildrs paquete () método.

El paquete parece tener ningún efecto en el manifiesto. Aquí está el fichero de construcción:

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

Y aquí está el resultado Manifiesto:

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

Tenga en cuenta que ni el Implementación-Vendor o Principal-Class propiedad ha sido sobrescrito. Corro Buildr de la siguiente manera:

jruby -S buildr clean package

Estoy usando JRuby 1.4.0 y 1.3.5 Buildr (instalado como una joya). Cualquier persona alguna idea de por qué esto es así?

¿Fue útil?

Solución 4

No puedo reproducir este problema después de la aparición inicial.

Otros consejos

He probado esto rápidamente utilizando Buildr 1.3.5 + 1.8.6 Rubí y obtuve el manifiesto correcta. Hice algunos pequeños cambios en el BuildFile que parecen como que no deberían tener importancia en lo que respecta a su problema manifiesto. Aquí está mi BuildFile prueba:

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

Y aquí está el manifiesto resultante:

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

Lo siento, no puedo decir por qué funciona para mí, pero tal vez mi post va a generar algunas ideas.

Trate de probar su buildfile bajo resonancia magnética 1.8.6 en lugar de JRuby. Es posible que haya un fallo que sólo sale en ese tiempo de ejecución (poco probable sin embargo). También es posible que haya alguna rareza que surgen debido a su uso de Scala 2.8. Pruebe una aplicación sencilla con la misma buildfile bajo Scala 2.7 y ver si eso ayuda.

Lo siento que no puedo dar más que conjeturas salvajes en este punto. Su buildfile parece que debe de trabajo, por lo que algo extraño está pasando definitivamente.

He probado tanto con C-Rubí 1.8.7 y 1.4.0 JRuby y no puedo reproducir el problema utilizando el buildfile su proporcionado (con Buildr 1.3.5 en ambos casos)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top