2012-04-01 5 views
2

Ich möchte Builds in meinem eigenen Verzeichnis speichern, und ich möchte Sonatype Nexus oder ähnliches nicht ausführen. Ist das möglich?Jenkins/Hudson - So stellen Sie Builds in einem Verzeichnis im lokalen Dateisystem bereit

stelle ich Jenkins up Artefakt in meine Maven-Repository zu implementieren und in dieser URL gefüllt

file:///home/tomas/.m2/repository 

Wenn ich versuche, das Projekt zu erstellen, ich diese Ausnahme

Maven RedeployPublished use remote maven settings from : /var/lib/jenkins/tools/mvn/conf/settings.xml 
[INFO] Deployment in /home/tomas/.m2/repository (id=,uniqueVersion=true) 
Deploying the main artifact wst-root-pom-1.0.pom 
ERROR: Failed to deploy artifacts/metadata: No connector available to access repository (/home/tomas/.m2/repository) of type default using the available factories WagonRepositoryConnectorFactory 
org.apache.maven.artifact.deployer.ArtifactDeploymentException: Failed to deploy artifacts/metadata: No connector available to access repository (/home/tomas/.m2/repository) of type default using the available factories WagonRepositoryConnectorFactory 
    at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:141) 
    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.sonatype.aether.deployment.DeploymentException: Failed to deploy artifacts/metadata: No connector available to access repository (/home/tomas/.m2/repository) of type default using the available factories WagonRepositoryConnectorFactory 
    at org.sonatype.aether.impl.internal.DefaultDeployer.deploy(DefaultDeployer.java:235) 
    at org.sonatype.aether.impl.internal.DefaultDeployer.deploy(DefaultDeployer.java:211) 
    at org.sonatype.aether.impl.internal.DefaultRepositorySystem.deploy(DefaultRepositorySystem.java:443) 
    at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:137) 
    ... 11 more 
Caused by: org.sonatype.aether.transfer.NoRepositoryConnectorException: No connector available to access repository (/home/tomas/.m2/repository) of type default using the available factories WagonRepositoryConnectorFactory 
    at org.sonatype.aether.impl.internal.DefaultRemoteRepositoryManager.getRepositoryConnector(DefaultRemoteRepositoryManager.java:400) 
    at org.sonatype.aether.impl.internal.DefaultDeployer.deploy(DefaultDeployer.java:231) 
    ... 14 more 
[INFO] Deployment failed after 0,26 sec 
Build step 'Deploy artifacts to Maven repository' changed build result to FAILURE 
Finished: FAILURE 

Antwort

2

Ich erinnere mich bekommen, dass ist ein Maven 3 Kompatibilitätsproblem. Nach den Notizen: https://cwiki.apache.org/MAVEN/maven-3x-compatibility-notes.html#Maven3.xCompatibilityNotes-TransportProtocols%2528Wagons%2529

Im Gegensatz zu Maven 2, Maven 3 unterstützen nur aus der Box http :, https: und Datei: als Transportprotokolle. Um andere Transportprotokolle wie scp: zu verwenden, müssen die entsprechenden Wagen explizit in der POM als Build-Erweiterung deklariert werden. Wenn der fragliche Wagen nur für die Bereitstellung in einem Repository verwendet wird, kann er alternativ als Abhängigkeit des Maven Deploy-Plugins deklariert werden.

So stellen Sie sicher, dass Sie Maven 3 verwenden, andernfalls müssen Sie Ihren eigenen Wagen als Maven-Erweiterung herunterladen. Hier ist eine Anleitung zur Verwendung von Maven Erweiterungen: http://maven.apache.org/guides/mini/guide-using-extensions.html

Hinweis: Wagon 1.0-Beta-3 + erfordert Maven 2.1.0 oder höher. Verwenden Sie für Maven 2.0.10 und früher Wagon 1.0-beta-2.

<project> 
    ... 
    <build> 
    <extensions> 
     <extension> 
     <groupId>org.apache.maven.wagon</groupId> 
     <artifactId>wagon-file</artifactId> 
     <version>1.0-beta-3</version> 
     </extension> 
    </extensions> 
    </build> 
    ... 
</project> 

Das sollte Ihr Problem lösen. Wenn es nicht funktioniert, überprüfe deinen maven-Pfad, um zu sehen, ob verschiedene Versionen nicht in Konflikt stehen.

+0

Nun, das sollte, aber auch nicht für mich. Es scheint, dass der Post Build Step von "Deploy Maven Artifcats" von Jenkins dieser Erweiterung nicht gerecht wird. – ctron