2012-04-01 82 views
2

我想將構建存儲在我自己的目錄中,並且我不想運行Sonatype Nexus或類似構件。這可能嗎?Jenkins/Hudson - 如何將構建部署到本地文件系統的目錄

我設定Jenkins神器部署到我的Maven倉庫,並填補了這個URL

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

如果我嘗試建立的項目,我會得到這個異常

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 

回答

2

我記得是一個Maven 3兼容性問題。根據筆記:https://cwiki.apache.org/MAVEN/maven-3x-compatibility-notes.html#Maven3.xCompatibilityNotes-TransportProtocols%2528Wagons%2529

不同的Maven 2,Maven的3支持開箱即只有HTTP:,HTTPS的:和 文件:作爲傳輸協議。要使用其他傳輸協議,如 scp:,必須在POM 中將相應的貨車明確聲明爲構建擴展。如果有問題的貨車僅用於 部署到存儲庫,它可以另外聲明爲Maven Deploy Plugin的 依賴項。

所以確保你使用的是Maven 3,否則你必須下載你自己的旅行車作爲maven擴展。這裏是一個引導件,以使用Maven擴展: http://maven.apache.org/guides/mini/guide-using-extensions.html

注:旅行車1.0-β-3 +需要的Maven 2.1.0或以上。對於Maven 2.0.10及更早版本,請使用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> 

這應該可以解決您的問題。如果它不起作用,請仔細檢查你的Maven路徑,看看不同版本是否衝突。

+0

嗯,這應該,但不適合我。似乎Jenkins的「部署Maven Artifcats」後製作步驟並未遵守這一擴展。 – ctron 2013-04-26 08:43:38

相關問題