2012-02-18 7 views
12

Jestem w trakcie konfigurowania środowiska kompilacji Jenkins do budowania moich projektów Android. W większości przypadków jest OK, ale istnieją pewne zależności, które nie są dostępne w centralnym repozytorium, takie jak Google Maps Maps API, dlatego muszę ręcznie zainstalować go w moim repozytorium. Mam te instalacje do mojego lokalnego repo przy użyciu mvn install i to działa dobrze.Nie można zainstalować lokalnego artefaktu maven do zdalnego repozytorium, google-android-maps

Zrobiłem trochę googlowania i mam następującą konfigurację do tej pory, ale widzę następujące błędy, gdy próbuję wdrożyć słoik mapy do mojego zdalnego repo.

mvn deploy:deploy-file -DgroupId=com.google.android.maps -DartifactId=maps -Dversion=8_r1 -Dpackaging=jar -Dfile=C:\Users\James\.m2\repository\com\google\android\maps\maps\8_r1\maps-8_r1.jar -DrepositoryId=cloudbeesreleases -Durl=https://repository-myusername.forge.cloudbees.com/release/ 

i widzę to:

[INFO] Error stacktraces are turned on. 
[INFO] Scanning for projects... 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Maven Stub Project (No POM) 1 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-deploy-plugin:2.5:deploy-file (default-cli) @ standalone-pom --- 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 0.450s 
[INFO] Finished at: Sat Feb 18 17:01:06 GMT 2012 
[INFO] Final Memory: 4M/92M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.5:deploy-file (default-cli) on project standalone-pom: Cannot deploy artifact from the local repository: C:\Users\James\.m2\repository\com\google\android\maps\maps\8_r1\maps-8_r1.jar -> [Help 1] 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.5:deploy-file (default-cli) on project standalone-pom: Cannot deploy artifact from the local repository: C:\Users\James\.m2\repository\com\google\android\maps\maps\8_r1\maps-8_r1.jar 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) 
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) 
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) 
Caused by: org.apache.maven.plugin.MojoFailureException: Cannot deploy artifact from the local repository: C:\Users\James\.m2\repository\com\google\android\maps\maps\8_r1\maps-8_r1.jar 
    at org.apache.maven.plugin.deploy.DeployFileMojo.execute(DeployFileMojo.java:211) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) 
    ... 19 more 
[ERROR] 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException 

Mam następujących w moim settings.xml

<profiles> 
    <profile> 
     <id>artifactory</id> 
     <repositories> 
     <repository> 
      <id>cloudbeesreleases</id> 
      <name>libs-releases</name> 
      <url>https://repository-myusername.forge.cloudbees.com/release/</url> 
      <snapshots> 
      <enabled>false</enabled> 
      </snapshots> 
     </repository>   
     </repositories>  
    </profile> 
    </profiles> 
    <activeProfiles> 
    <activeProfile>artifactory</activeProfile> 
    </activeProfiles> 

Czy mam coś źle skonfigurowane, czy jestem całkowicie nieporozumienia jak deploy powinien praca?

Odpowiedz

0

Kilka rzeczy do wypróbowania: Użyj parametru settings, aby upewnić się, że używany jest prawidłowy plik ustawień, a wiele z nich z hierarchią.

--settings <arg> 

Czy wyjście dziennika powiedzieć kilka rzeczy, takich jak przesyłanie http: // ..... jest poprawny URL i czego można się spodziewać, że będzie?

Czy ręczne przesyłanie odbywa się za pomocą opcji "Sonatype"?

nie powinno ustawienia plików mają również tag serwera:

<server> 
    <id>deploymentRepo</id> 
    <username>repouser</username> 
    <password>repopwd</password> 
</server> 

docs powiedzenia „Serwer Id do map na podstawie sekcji settings.xml”, więc zgaduję, że nie będzie działać bez dopasowanie konfiguracji serwera.

9

Komunikat o błędzie wydaje się prosty.

nie można wdrożyć artefakt z lokalnego repozytorium: ...

można spróbować wdrażania plik umieszczenie go w innym miejscu? Również this discussion wydaje się być na tym samym problemie i stwierdza, dlaczego jest problem.

+6

Miałem ten sam problem, więc skopiowałem artefakt do/tmp/i zamiast tego próbowałem wdrożyć z tego miejsca. Zadziałało! – neu242

+0

Dzięki, skopiowanie pliku poza lokalnym repojem maven rozwiązuje problem! – Laimoncijus

+0

Byłoby miło, gdyby istniał sposób na zastąpienie tego zachowania (np. --force), ponieważ istnieje wiele scenariuszy, w których użytkownik może to zrobić ... usunięcie pliku z repozytorium jest trochę hack. – James

Powiązane problemy