SBT and Jenkins

890 views
Skip to first unread message

Nolan Darilek

unread,
Nov 7, 2011, 10:48:07 PM11/7/11
to Simple-build-tool
I'm trying to integrate SBT with Jenkins, but am getting the following error when I try running build tasks:

+ java -Dsbt.log.noformat=true -jar /usr/share/tomcat7/.jenkins/sbt-launch.jar package
java.io.IOException: No such file or directory
	at java.io.UnixFileSystem.createFileExclusively(Native Method)
	at java.io.File.createNewFile(File.java:900)
	at xsbt.boot.Locks$.apply0(Locks.scala:34)
	at xsbt.boot.Locks$.apply(Locks.scala:27)
	at scala.collection.mutable.FlatHashTable$class.$init$(Proxy.scala:32)
	at xsbt.boot.Launch$ScalaProvider.<init>(Launch.scala:108)
	at xsbt.boot.Launch$$anonfun$1.apply(Launch.scala:83)
	at org.apache.ivy.plugins.namespace.NamespaceRule.newEntry(Cache.scala:17)
	at org.apache.ivy.plugins.namespace.NamespaceRule.apply(Cache.scala:12)
	at xsbt.boot.Launch.getScala(Launch.scala:85)
	at xsbt.boot.Launch$.run(Launch.scala:49)
	at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:43)
	at xsbt.boot.Launch$.launch(Launch.scala:68)
	at xsbt.boot.Launch$.apply(Launch.scala:14)
	at xsbt.boot.Boot$.runImpl(Boot.scala:24)
	at xsbt.boot.Boot$.main(Boot.scala:15)
	at xsbt.boot.Boot.main(Boot.scala)
Error during sbt execution: java.io.IOException: No such file or directory
Build step 'Execute shell' marked build as failure

Deleting project workspace... done

Finished: FAILURE
Page generated: Nov 8, 2011 3:36:20 AMJenkins ver. 1.438


Any thoughts on what specifically is failing there? It's running as the tomcat7 user which can't write to its home directory. Is there some way, other than changing the HOME environment variable which works for other shell commands in this step, to get SBT to recognize the workspace as its home?

Thanks.

Jason Zaugg

unread,
Nov 8, 2011, 4:52:56 AM11/8/11
to simple-b...@googlegroups.com
On Tuesday, November 8, 2011 4:48:07 AM UTC+1, Nolan Darilek wrote:

Any thoughts on what specifically is failing there? It's running as the tomcat7 user which can't write to its home directory. Is there some way, other than changing the HOME environment variable which works for other shell commands in this step, to get SBT to recognize the workspace as its home?

You can explicitly pass in the location of the SBT boot directory, as described in Setup Notes [1]. 

-jason

 

Nolan Darilek

unread,
Nov 8, 2011, 6:22:41 AM11/8/11
to simple-b...@googlegroups.com
Thanks, but that doesn't appear to have done it. I see a boot directory at the specified location with an empty update.log:

[workspace] $ java -Dsbt.log.noformat=true -Dsbt.boot.directory=/usr/share/tomcat7/.jenkins/.sbt/boot/ -jar /usr/share/tomcat7/.jenkins/sbt-launch.jar package
java.io.IOException: No such file or directory
	at java.io.UnixFileSystem.createFileExclusively(Native Method)
	at java.io.File.createNewFile(File.java:900)
	at xsbt.boot.Locks$.apply0(Locks.scala:34)
	at xsbt.boot.Locks$.apply(Locks.scala:27)
	at xsbt.boot.Update.apply(JavaConversions.scala:79)
	at xsbt.boot.Provider$initialize.call(Provider.scala:34)
	at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:47)
	at xsbt.boot.Locks$.apply0(Locks.scala:30)
	at xsbt.boot.Locks$.apply(Locks.scala:27)
	at scala.collection.mutable.FlatHashTable$class.$init$(Proxy.scala:32)
	at xsbt.boot.Launch$JNAProvider.<init>(Launch.scala:94)
	at xsbt.boot.Launch.topLoader(Launch.scala:87)
	at xsbt.boot.Launch$ScalaProvider.parentLoader(Launch.scala:111)
	at xsbt.boot.Provider$initialize.createLoader(Provider.scala:57)
	at xsbt.boot.Provider$initialize.call(Provider.scala:34)
	at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:75)
	at xsbt.boot.Locks$GlobalLock.withChannelRetries$1(Locks.scala:58)
	at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:79)
	at xsbt.boot.Using$.withResource(Using.scala:11)
	at xsbt.boot.Using$.apply(Using.scala:10)
	at xsbt.boot.Locks$GlobalLock.liftedTree1$1(Locks.scala:51)
	at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:51)
	at xsbt.boot.Locks$.apply0(Locks.scala:30)
	at xsbt.boot.Locks$.apply(Locks.scala:27)
	at scala.collection.mutable.FlatHashTable$class.$init$(Proxy.scala:32)
	at xsbt.boot.Launch$ScalaProvider.<init>(Launch.scala:108)
	at xsbt.boot.Launch$$anonfun$1.apply(Launch.scala:83)
	at org.apache.ivy.plugins.namespace.NamespaceRule.newEntry(Cache.scala:17)
	at org.apache.ivy.plugins.namespace.NamespaceRule.apply(Cache.scala:12)
	at xsbt.boot.Launch.getScala(Launch.scala:85)
	at xsbt.boot.Launch$.run(Launch.scala:49)
	at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:43)
	at xsbt.boot.Launch$.launch(Launch.scala:68)
	at xsbt.boot.Launch$.apply(Launch.scala:14)
	at xsbt.boot.Boot$.runImpl(Boot.scala:24)
	at xsbt.boot.Boot$.main(Boot.scala:15)
	at xsbt.boot.Boot.main(Boot.scala)
Error during sbt execution: java.io.IOException: No such file or directory
Build step 'Build using sbt' changed build result to FAILURE
Build step 'Build using sbt' marked build as failure

Deleting project workspace... done

Finished: FAILURE
Page generated: Nov 8, 2011 11:19:18 AMJenkins ver. 1.438
--
You received this message because you are subscribed to the Google Groups "simple-build-tool" group.
To view this discussion on the web visit https://groups.google.com/d/msg/simple-build-tool/-/1TwAyXPYJX4J.
To post to this group, send email to simple-b...@googlegroups.com.
To unsubscribe from this group, send email to simple-build-t...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/simple-build-tool?hl=en.

Jason Zaugg

unread,
Nov 8, 2011, 7:28:17 AM11/8/11
to simple-b...@googlegroups.com

On Tuesday, November 8, 2011 12:22:41 PM UTC+1, Nolan Darilek wrote:
Thanks, but that doesn't appear to have done it. I see a boot directory at the specified location with an empty update.log:

One more directly to relocate, ~/.ivy2. Use -Dsbt.ivy.home, documented in Library Management [1]

You could lodge a feature request [2] to get a better error message in this case.

-jason

Reply all
Reply to author
Forward
0 new messages