See <https://builds.apache.org/job/sling-samples-1.5/298/>

------------------------------------------
[...truncated 946 lines...]
[INFO] Preparing source:jar
[WARNING] Removing: jar from forked lifecycle, to prevent recursive invocation.
[JENKINS] Archiving <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/framework-fragment/pom.xml> to /home/hudson/hudson/jobs/sling-samples-1.5/modules/org.apache.sling$org.apache.sling.samples.frameworkfragment/builds/2012-03-30_03-13-43/archive/org.apache.sling/org.apache.sling.samples.frameworkfragment/0.9.9-SNAPSHOT/org.apache.sling.samples.frameworkfragment-0.9.9-SNAPSHOT.pom
[JENKINS] Archiving <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/framework-fragment/target/org.apache.sling.samples.frameworkfragment-0.9.9-SNAPSHOT.jar> to /home/hudson/hudson/jobs/sling-samples-1.5/modules/org.apache.sling$org.apache.sling.samples.frameworkfragment/builds/2012-03-30_03-13-43/archive/org.apache.sling/org.apache.sling.samples.frameworkfragment/0.9.9-SNAPSHOT/org.apache.sling.samples.frameworkfragment-0.9.9-SNAPSHOT.jar
[INFO] [enforcer:enforce {execution: enforce-java}]
[INFO] [source:jar {execution: attach-sources}]
[INFO] META-INF already added, skipping
[INFO] META-INF/LICENSE already added, skipping
[INFO] META-INF/NOTICE already added, skipping
[INFO] META-INF/DEPENDENCIES already added, skipping
[INFO] Building jar: <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/framework-fragment/target/org.apache.sling.samples.frameworkfragment-0.9.9-SNAPSHOT-sources.jar>
[INFO] META-INF already added, skipping
[INFO] META-INF/LICENSE already added, skipping
[INFO] META-INF/NOTICE already added, skipping
[INFO] META-INF/DEPENDENCIES already added, skipping
[INFO] [ianal:verify-legal-files {execution: default}]
[INFO] Checking legal files in: org.apache.sling.samples.frameworkfragment-0.9.9-SNAPSHOT.jar
[INFO] Checking legal files in: org.apache.sling.samples.frameworkfragment-0.9.9-SNAPSHOT-sources.jar
[INFO] [install:install {execution: default-install}]
[INFO] Installing <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/framework-fragment/target/org.apache.sling.samples.frameworkfragment-0.9.9-SNAPSHOT.jar> to /home/jenkins/jenkins-slave/maven-repositories/0/org/apache/sling/org.apache.sling.samples.frameworkfragment/0.9.9-SNAPSHOT/org.apache.sling.samples.frameworkfragment-0.9.9-SNAPSHOT.jar
[INFO] Installing <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/framework-fragment/target/org.apache.sling.samples.frameworkfragment-0.9.9-SNAPSHOT-sources.jar> to /home/jenkins/jenkins-slave/maven-repositories/0/org/apache/sling/org.apache.sling.samples.frameworkfragment/0.9.9-SNAPSHOT/org.apache.sling.samples.frameworkfragment-0.9.9-SNAPSHOT-sources.jar
[JENKINS] Archiving <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/framework-fragment/target/org.apache.sling.samples.frameworkfragment-0.9.9-SNAPSHOT-sources.jar> to /home/hudson/hudson/jobs/sling-samples-1.5/modules/org.apache.sling$org.apache.sling.samples.frameworkfragment/builds/2012-03-30_03-13-43/archive/org.apache.sling/org.apache.sling.samples.frameworkfragment/0.9.9-SNAPSHOT/org.apache.sling.samples.frameworkfragment-0.9.9-SNAPSHOT-sources.jar
[INFO] ------------------------------------------------------------------------
[INFO] Building Apache Sling User Manager UI sample
[INFO]    task-segment: [clean, install]
[INFO] ------------------------------------------------------------------------
[INFO] artifact net.alchim31.maven:yuicompressor-maven-plugin: checking for updates from oss.sonatype.org
[INFO] [clean:clean {execution: default-clean}]
[INFO] Deleting <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/usermanager-ui/target>
[INFO] [enforcer:enforce {execution: enforce-java}]
[INFO] [remote-resources:process {execution: default}]
[INFO] [resources:resources {execution: default-resources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 28 resources
[INFO] Copying 3 resources
[WARNING] DEPRECATED [tasks]: Use target instead
[INFO] [antrun:run {execution: default}]
[WARNING] Parameter tasks is deprecated, use target instead
[INFO] Executing tasks

main:
     [echo] **************** WARNING (SLING-443/SLING-1782) ******************************
     [echo] On most platforms, you'll get OutOfMemoryErrors when building unless you set
     [echo] on 32bit platforms: MAVEN_OPTS="-Xmx256M -XX:MaxPermSize=256M", see SLING-443
     [echo] on 64bit platforms: MAVEN_OPTS="-Xmx512M -XX:MaxPermSize=512M", see SLING-1782
     [echo] ******************************************************************************
[INFO] Executed tasks
[INFO] [yuicompressor:compress {execution: default}]
[INFO] nothing to do, <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/usermanager-ui/src/main/resources/js/usermanager/usermanager.min.js> is younger than original, use 'force' option or clean your target
[INFO] nothing to do, <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/usermanager-ui/src/main/resources/css/usermanager/usermanager.min.css> is younger than original, use 'force' option or clean your target
[INFO] nothing to do, <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/usermanager-ui/src/main/resources/js/usermanager/usermanager.min.js> is younger than original, use 'force' option or clean your target
[INFO] nothing to do, <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/usermanager-ui/src/main/resources/css/usermanager/usermanager.min.css> is younger than original, use 'force' option or clean your target
[INFO] nb warnings: 0, nb errors: 0
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Compiling 1 source file to <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/usermanager-ui/target/classes>
[INFO] [scr:scr {execution: generate-scr-scrdescriptor}]
[INFO] [resources:testResources {execution: default-testResources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/usermanager-ui/src/test/resources>
[INFO] Copying 3 resources
[INFO] [compiler:testCompile {execution: default-testCompile}]
[INFO] No sources to compile
[INFO] [surefire:test {execution: default-test}]
[INFO] Surefire report directory: <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/usermanager-ui/target/surefire-reports>

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
There are no tests to run.

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[JENKINS] Recording test results[INFO] [animal-sniffer:check {execution: default}]
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java15:1.0

[INFO] [bundle:bundle {execution: default-bundle}]
[INFO] Preparing source:jar
[WARNING] Removing: jar from forked lifecycle, to prevent recursive invocation.
[JENKINS] Archiving <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/usermanager-ui/pom.xml> to /home/hudson/hudson/jobs/sling-samples-1.5/modules/org.apache.sling.samples$org.apache.sling.samples.usermanager.ui/builds/2012-03-30_03-13-43/archive/org.apache.sling.samples/org.apache.sling.samples.usermanager.ui/0.9-SNAPSHOT/org.apache.sling.samples.usermanager.ui-0.9-SNAPSHOT.pom
[JENKINS] Archiving <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/usermanager-ui/target/org.apache.sling.samples.usermanager.ui-0.9-SNAPSHOT.jar> to /home/hudson/hudson/jobs/sling-samples-1.5/modules/org.apache.sling.samples$org.apache.sling.samples.usermanager.ui/builds/2012-03-30_03-13-43/archive/org.apache.sling.samples/org.apache.sling.samples.usermanager.ui/0.9-SNAPSHOT/org.apache.sling.samples.usermanager.ui-0.9-SNAPSHOT.jar
[INFO] [enforcer:enforce {execution: enforce-java}]
[INFO] [source:jar {execution: attach-sources}]
[INFO] META-INF already added, skipping
[INFO] META-INF/LICENSE already added, skipping
[INFO] META-INF/NOTICE already added, skipping
[INFO] META-INF/DEPENDENCIES already added, skipping
[INFO] Building jar: <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/usermanager-ui/target/org.apache.sling.samples.usermanager.ui-0.9-SNAPSHOT-sources.jar>
[INFO] META-INF already added, skipping
[INFO] META-INF/LICENSE already added, skipping
[INFO] META-INF/NOTICE already added, skipping
[INFO] META-INF/DEPENDENCIES already added, skipping
[INFO] [ianal:verify-legal-files {execution: default}]
[INFO] Checking legal files in: org.apache.sling.samples.usermanager.ui-0.9-SNAPSHOT.jar
[INFO] Checking legal files in: org.apache.sling.samples.usermanager.ui-0.9-SNAPSHOT-sources.jar
[INFO] [install:install {execution: default-install}]
[INFO] Installing <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/usermanager-ui/target/org.apache.sling.samples.usermanager.ui-0.9-SNAPSHOT.jar> to /home/jenkins/jenkins-slave/maven-repositories/0/org/apache/sling/samples/org.apache.sling.samples.usermanager.ui/0.9-SNAPSHOT/org.apache.sling.samples.usermanager.ui-0.9-SNAPSHOT.jar
[INFO] Installing <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/usermanager-ui/target/org.apache.sling.samples.usermanager.ui-0.9-SNAPSHOT-sources.jar> to /home/jenkins/jenkins-slave/maven-repositories/0/org/apache/sling/samples/org.apache.sling.samples.usermanager.ui/0.9-SNAPSHOT/org.apache.sling.samples.usermanager.ui-0.9-SNAPSHOT-sources.jar
[INFO] [bundle:install {execution: default-install}]
[INFO] Local OBR update disabled (enable with -DobrRepository)
[JENKINS] Archiving <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/usermanager-ui/target/org.apache.sling.samples.usermanager.ui-0.9-SNAPSHOT-sources.jar> to /home/hudson/hudson/jobs/sling-samples-1.5/modules/org.apache.sling.samples$org.apache.sling.samples.usermanager.ui/builds/2012-03-30_03-13-43/archive/org.apache.sling.samples/org.apache.sling.samples.usermanager.ui/0.9-SNAPSHOT/org.apache.sling.samples.usermanager.ui-0.9-SNAPSHOT-sources.jar
[INFO] ------------------------------------------------------------------------
[INFO] Building Apache Sling Access Manager UI sample
[INFO]    task-segment: [clean, install]
[INFO] ------------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] Deleting <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/accessmanager-ui/target>
[INFO] [enforcer:enforce {execution: enforce-java}]
[INFO] [remote-resources:process {execution: default}]
[INFO] [resources:resources {execution: default-resources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 14 resources
[INFO] Copying 3 resources
[WARNING] DEPRECATED [tasks]: Use target instead
[INFO] [antrun:run {execution: default}]
[WARNING] Parameter tasks is deprecated, use target instead
[INFO] Executing tasks

main:
     [echo] **************** WARNING (SLING-443/SLING-1782) ******************************
     [echo] On most platforms, you'll get OutOfMemoryErrors when building unless you set
     [echo] on 32bit platforms: MAVEN_OPTS="-Xmx256M -XX:MaxPermSize=256M", see SLING-443
     [echo] on 64bit platforms: MAVEN_OPTS="-Xmx512M -XX:MaxPermSize=512M", see SLING-1782
     [echo] ******************************************************************************
[INFO] Executed tasks
[INFO] [yuicompressor:compress {execution: default}]
[INFO] nothing to do, <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/accessmanager-ui/src/main/resources/js/accessmanager/accessmanager.min.js> is younger than original, use 'force' option or clean your target
[INFO] nothing to do, <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/accessmanager-ui/src/main/resources/css/accessmanager/accessmanager.min.css> is younger than original, use 'force' option or clean your target
[INFO] nothing to do, <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/accessmanager-ui/src/main/resources/js/accessmanager/accessmanager.min.js> is younger than original, use 'force' option or clean your target
[INFO] nothing to do, <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/accessmanager-ui/src/main/resources/css/accessmanager/accessmanager.min.css> is younger than original, use 'force' option or clean your target
[INFO] nb warnings: 0, nb errors: 0
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Nothing to compile - all classes are up to date
[INFO] [scr:scr {execution: generate-scr-scrdescriptor}]
[INFO] [resources:testResources {execution: default-testResources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/accessmanager-ui/src/test/resources>
[INFO] Copying 3 resources
[INFO] [compiler:testCompile {execution: default-testCompile}]
[INFO] No sources to compile
[INFO] [surefire:test {execution: default-test}]
[INFO] Surefire report directory: <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/accessmanager-ui/target/surefire-reports>

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
There are no tests to run.

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[JENKINS] Recording test results[INFO] [animal-sniffer:check {execution: default}]
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java15:1.0

[INFO] [bundle:bundle {execution: default-bundle}]
[WARNING] Warning building bundle org.apache.sling.samples:org.apache.sling.samples.accessmanager.ui:bundle:0.9-SNAPSHOT : Did not find matching referal for *
[INFO] Preparing source:jar
[WARNING] Removing: jar from forked lifecycle, to prevent recursive invocation.
[JENKINS] Archiving <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/accessmanager-ui/pom.xml> to /home/hudson/hudson/jobs/sling-samples-1.5/modules/org.apache.sling.samples$org.apache.sling.samples.accessmanager.ui/builds/2012-03-30_03-13-43/archive/org.apache.sling.samples/org.apache.sling.samples.accessmanager.ui/0.9-SNAPSHOT/org.apache.sling.samples.accessmanager.ui-0.9-SNAPSHOT.pom
[JENKINS] Archiving <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/accessmanager-ui/target/org.apache.sling.samples.accessmanager.ui-0.9-SNAPSHOT.jar> to /home/hudson/hudson/jobs/sling-samples-1.5/modules/org.apache.sling.samples$org.apache.sling.samples.accessmanager.ui/builds/2012-03-30_03-13-43/archive/org.apache.sling.samples/org.apache.sling.samples.accessmanager.ui/0.9-SNAPSHOT/org.apache.sling.samples.accessmanager.ui-0.9-SNAPSHOT.jar
[INFO] [enforcer:enforce {execution: enforce-java}]
[INFO] [source:jar {execution: attach-sources}]
[INFO] META-INF already added, skipping
[INFO] META-INF/LICENSE already added, skipping
[INFO] META-INF/NOTICE already added, skipping
[INFO] META-INF/DEPENDENCIES already added, skipping
[INFO] Building jar: <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/accessmanager-ui/target/org.apache.sling.samples.accessmanager.ui-0.9-SNAPSHOT-sources.jar>
[INFO] META-INF already added, skipping
[INFO] META-INF/LICENSE already added, skipping
[INFO] META-INF/NOTICE already added, skipping
[INFO] META-INF/DEPENDENCIES already added, skipping
[INFO] [ianal:verify-legal-files {execution: default}]
[INFO] Checking legal files in: org.apache.sling.samples.accessmanager.ui-0.9-SNAPSHOT.jar
[INFO] Checking legal files in: org.apache.sling.samples.accessmanager.ui-0.9-SNAPSHOT-sources.jar
[INFO] [install:install {execution: default-install}]
[INFO] Installing <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/accessmanager-ui/target/org.apache.sling.samples.accessmanager.ui-0.9-SNAPSHOT.jar> to /home/jenkins/jenkins-slave/maven-repositories/0/org/apache/sling/samples/org.apache.sling.samples.accessmanager.ui/0.9-SNAPSHOT/org.apache.sling.samples.accessmanager.ui-0.9-SNAPSHOT.jar
[INFO] Installing <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/accessmanager-ui/target/org.apache.sling.samples.accessmanager.ui-0.9-SNAPSHOT-sources.jar> to /home/jenkins/jenkins-slave/maven-repositories/0/org/apache/sling/samples/org.apache.sling.samples.accessmanager.ui/0.9-SNAPSHOT/org.apache.sling.samples.accessmanager.ui-0.9-SNAPSHOT-sources.jar
[INFO] [bundle:install {execution: default-install}]
[INFO] Local OBR update disabled (enable with -DobrRepository)
[JENKINS] Archiving <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/accessmanager-ui/target/org.apache.sling.samples.accessmanager.ui-0.9-SNAPSHOT-sources.jar> to /home/hudson/hudson/jobs/sling-samples-1.5/modules/org.apache.sling.samples$org.apache.sling.samples.accessmanager.ui/builds/2012-03-30_03-13-43/archive/org.apache.sling.samples/org.apache.sling.samples.accessmanager.ui/0.9-SNAPSHOT/org.apache.sling.samples.accessmanager.ui-0.9-SNAPSHOT-sources.jar
[INFO] ------------------------------------------------------------------------
[INFO] Building Apache Sling Samples (Builder)
[INFO]    task-segment: [clean, install]
[INFO] ------------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] [site:attach-descriptor {execution: default-attach-descriptor}]
[INFO] [install:install {execution: default-install}]
[INFO] Installing <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/pom.xml> to /home/jenkins/jenkins-slave/maven-repositories/0/org/apache/sling/sling-samples-builder/2-SNAPSHOT/sling-samples-builder-2-SNAPSHOT.pom
[JENKINS] Archiving <https://builds.apache.org/job/sling-samples-1.5/ws/contrib-1.5/pom.xml> to /home/hudson/hudson/jobs/sling-samples-1.5/modules/org.apache.sling$sling-samples-builder/builds/2012-03-30_03-13-42/archive/org.apache.sling/sling-samples-builder/2-SNAPSHOT/sling-samples-builder-2-SNAPSHOT.pom
[INFO] 
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] ------------------------------------------------------------------------
[INFO] Apache Sling ESP blog sample .......................... SUCCESS [20.231s]
[INFO] Apache Sling Javashell sample ......................... SUCCESS [3.668s]
[INFO] Apache Sling Sample Path Based Resource Type Provider . SUCCESS [12.550s]
[INFO] Apache Sling Sample Post Servlet Extensions ........... SUCCESS [5.441s]
[INFO] Apache Sling Sample Application ....................... SUCCESS [8.255s]
[INFO] Apache Sling - Slingshot Demo ......................... SUCCESS [5.227s]
[INFO] Apache Sling Webloader Service ........................ SUCCESS [3.886s]
[INFO] Apache Sling Webloader User Interface ................. SUCCESS [3.669s]
[INFO] Apache Sling Sample Custom Login Form ................. SUCCESS [4.275s]
[INFO] Apache Sling Slingbucks - sample coffee store management application  SUCCESS [4.470s]
[INFO] Dependency Install Sample ............................. SUCCESS [3.199s]
[INFO] Apache Sling Sample Framework Fragment Bundle ......... SUCCESS [7.564s]
[INFO] Apache Sling User Manager UI sample ................... SUCCESS [5.916s]
[INFO] Apache Sling Access Manager UI sample ................. SUCCESS [3.523s]
[INFO] Apache Sling Samples (Builder) ........................ SUCCESS [1.059s]
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 minute 50 seconds
[INFO] Finished at: Fri Mar 30 03:16:02 UTC 2012
[INFO] Final Memory: 71M/106M
[INFO] ------------------------------------------------------------------------
channel stopped
[locks-and-latches] Releasing all the locks
[locks-and-latches] All the locks released
Maven RedeployPublished use remote ubuntu1 maven settings from : /home/jenkins/.m2/settings.xml
[INFO] Deployment in https://repository.apache.org/content/repositories/snapshots/ (id=,uniqueVersion=false)
Deploying the main artifact installing-dependencies-sample-0.0.1-SNAPSHOT.jar
ERROR: Error deploying artifact: Failed to transfer file: https://repository.apache.org/content/repositories/snapshots/org/apache/sling/installing-dependencies-sample/0.0.1-SNAPSHOT/installing-dependencies-sample-0.0.1-SNAPSHOT.jar. Return code is: 401, ReasonPhrase:Unauthorized.
org.apache.maven.artifact.deployer.ArtifactDeploymentException: Error deploying artifact: Failed to transfer file: https://repository.apache.org/content/repositories/snapshots/org/apache/sling/installing-dependencies-sample/0.0.1-SNAPSHOT/installing-dependencies-sample-0.0.1-SNAPSHOT.jar. Return code is: 401, ReasonPhrase:Unauthorized.
	at hudson.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:175)
	at hudson.maven.reporters.MavenArtifactRecord.deploy(MavenArtifactRecord.java:182)
	at hudson.maven.RedeployPublisher.perform(RedeployPublisher.java:176)
	at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
	at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:703)
	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:678)
	at hudson.maven.MavenModuleSetBuild$RunnerImpl.post2(MavenModuleSetBuild.java:998)
	at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:625)
	at hudson.model.Run.run(Run.java:1435)
	at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:481)
	at hudson.model.ResourceController.execute(ResourceController.java:88)
	at hudson.model.Executor.run(Executor.java:238)
Caused by: org.apache.maven.wagon.TransferFailedException: Failed to transfer file: https://repository.apache.org/content/repositories/snapshots/org/apache/sling/installing-dependencies-sample/0.0.1-SNAPSHOT/installing-dependencies-sample-0.0.1-SNAPSHOT.jar. Return code is: 401, ReasonPhrase:Unauthorized.
	at org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:562)
	at org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:471)
	at org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:451)
	at org.apache.maven.repository.legacy.DefaultWagonManager.putRemoteFile(DefaultWagonManager.java:543)
	at org.apache.maven.repository.legacy.DefaultWagonManager.putArtifact(DefaultWagonManager.java:494)
	at hudson.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:160)
	... 11 more
[INFO] Deployment failed after 1.4 sec
Build step 'Deploy artifacts to Maven repository' changed build result to FAILURE


