¿Es posible anular o modificar tareas SBT incorporadas (como la compilación) para depender de tareas personalizadas en mi propia Build.scala? Anulación, por ejemplo, "compilar" directamente no es posible ya que se ha definido con valor perezoso y, por lo tanto, al hacer referencia a supercompilar se emite un error de compilación "no se puede usar super en el valor diferido".¿Agregar nuevas dependencias de tareas a las tareas SBT integradas?
Respuesta
Dado que esta cuestión aparece cuando googlear cómo agregar una dependencia de SBT, y las respuestas actuales son deprecated as of 0.13.x y se retira en 1.0, aquí está la respuesta actualizada, suponiendo que printAction
es la tarea que compile
debería depender de:
(Compile/compile) := ((Compile/compile) dependsOn printAction).value
Responder a la libre: http://code.google.com/p/simple-build-tool/wiki/ProjectDefinitionExamples#Insert_Task_Dependency da la respuesta:
Si está utilizando versiones más antiguas 0.7.x SBT se puede hacer esto:
import sbt._
class SampleProject(info: ProjectInfo) extends DefaultProject(info) {
lazy val printAction = task { print("Testing...") }
override def compileAction = super.compileAction dependsOn(printAction)
}
Tenga en cuenta que esta sugerencia solo funciona para SBT 0.7.x. El 0.11 actual lo hace de manera diferente. –
¿Cómo funciona la nueva versión? – Hadesara
Esta respuesta no está actualizada. Ver [la versión actualizada que acabo de publicar] (https://stackoverflow.com/a/47654822/596329). – arussell84
Actualización: Véase la respuesta de arussell84 para una forma moderna de hacen esto
Usted debe ser capaz de hacerlo de esta manera:
en un archivo .sbt:
compile <<= (compile in Compile) dependsOn jruby
Dónde jruby es una llave tarea que ha definido en un archivo de proyecto/something.scala:
val jruby = TaskKey[Unit]("jruby", "run a jruby file")
Además, esto no es parte de su pregunta, pero sólo se puede llamar normal código Scala:
compile <<= (compile in Compile) map { result =>
println("in compile, something")
result
}
Hay tantas 'compilaciones' allí que no puedo entender cómo esto se generaliza para agregar dependencias a otras tareas. ¿Qué debo hacer para agregar una dependencia a 'stage'? –
@ScottMorrison Creo que dices: 'stage << stage dependsOn jruby' – 0fnt
Esta respuesta no está actualizada. Ver [la versión actualizada que acabo de publicar] (https://stackoverflow.com/a/47654822/596329). – arussell84
En la carpeta base_dir/project/
crear un archivo build.sbt
y puso libraryDependencies += ...
allí.
Esa es la forma idiomática SBT para construir su "proyecto de construcción", también conocido como "Meta Build".
- 1. Agregar dependencias de tareas a Rake :: TestTask
- 2. sbt 0.11 ejecutar ejemplos de tareas necesarios
- 3. Programación de tareas con dependencias complejas
- 4. cómo agregar tareas prioridad funcionalidad
- 5. ¿Cómo eliminar tareas viejas en cola en ThreadPoolExecutor e insertar nuevas tareas?
- 6. ¿Hay alguna manera de enumerar dependencias de tareas en Gradle?
- 7. Tareas con errores de diferencia frente a tareas eliminadas
- 8. JAVA - Cancele las tareas que ejecutan ThreadPoolExecutor
- 9. ¿Cómo afectan las Tareas en la Biblioteca paralela de tareas a ActivityID?
- 10. Evitar que las ventanas se muestren como 'tareas' desde el administrador de tareas WPF C#
- 11. Scrum Taskboard: ¿pueden cambiar las tareas?
- 12. Lista todas las tareas de JIRA que no están bloqueadas por otras tareas
- 13. Programador de tareas de Windows para ejecutar tareas en segundos
- 14. Eclipse no muestra tareas TODO
- 15. Rake Las tareas de RSpec no aparecen
- 16. ¿Cómo hacer las tareas de inicio idempotentes?
- 17. Tareas máximas en TPL?
- 18. Apile tareas de apio
- 19. Agregar y eliminar dependencias con SBT y Scala IDE
- 20. ContinueWhenAll no esperar a que todas las tareas para completar
- 21. dependencias locales para las tareas de MSBuild Comunidad dentro de Visual Studio 2010
- 22. Estimación del tiempo en las tareas
- 23. ¿Las tareas del programador Heroku cuestan dinero?
- 24. ¿Cómo exactamente están programadas las tareas internamente?
- 25. Java ExecutorService: awaitTerminación de todas las tareas creadas recursivamente
- 26. ¿Las dependencias de tareas siempre se ejecutan en un orden específico con rake?
- 27. Scala tareas paralelas únicamente en las declaraciones
- 28. Google App Engine - Tareas de tareas frente a trabajos de Cron
- 29. Cancelar tareas de fondo
- 30. Creación de tareas programadas
Posible duplicado para SBT 0.13 http://stackoverflow.com/q/8554992/1305344 –