método del paquete del que no tiene efecto en Buildr
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í?
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)