2013-04-19 12 views
16

Chcę wdrożyć bibliotekę w moim zdalnym repozytorium firm.Nie można rozmieścić artefaktów: Nie można znaleźć artefaktu

Po raz pierwszy chcę wdrożyć projekt biblioteki do zdalnego repozytorium.

pojawia się następujący komunikat o błędzie:

org.sonatype.aether.transfer.ArtifactNotFoundException: Nie można odnaleźć artefakt com.http: httpkit: słoik: 0.0.1 w internal.repo (http://jenkins.internal.com/)

Być może rozumiem, że coś kompletnie nie tak, ale komunikat o błędzie mówi, że w zdalnym repozytorium nie istnieje artefakt, który próbuję zainstalować po raz pierwszy. Oczywiście nie ma takiego artefaktu. Dlaczego maven próbuje pobrać artefakt, gdy próbuję załadować artefakt?

Mój plik POM:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd"> 

<modelVersion>4.0.0</modelVersion> 
<groupId>com.http</groupId> 
<artifactId>httpkit</artifactId> 
<version>0.0.1</version> 
<packaging>jar</packaging> 
<name>httpkit</name> 

<properties> 
    <platform.version> 4.1.1.4</platform.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>com.google.android</groupId> 
     <artifactId>android</artifactId> 
     <version>${platform.version}</version> 
     <scope>provided</scope> 
    </dependency> 
</dependencies> 

<!-- Deploy to internal maven repository --> 
<distributionManagement> 
    <repository> 
     <id>internal.repo</id> 
     <name>Internal Repository</name> 
     <url>http://jenkins.internal.com/</url> 
    </repository> 
</distributionManagement> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
      <artifactId>android-maven-plugin</artifactId> 
      <version>3.5.3</version> 
      <configuration> 
       <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> 
       <assetsDirectory>${project.basedir}/assets</assetsDirectory> 
       <resourceDirectory>${project.basedir}/res</resourceDirectory> 
       <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> 
       <sdk> 
        <platform>16</platform> 
       </sdk> 
       <undeployBeforeDeploy>true</undeployBeforeDeploy> 
      </configuration> 
      <extensions>true</extensions> 
     </plugin> 

     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.5.1</version> 
      <configuration> 
       <source>1.5</source> 
       <target>1.5</target> 
      </configuration> 
     </plugin> 

    </plugins> 
</build> 
</project> 

Wzywam

mvn wdrożyć

z linii poleceń

Wszelkie sugestie, jak rozwiązać ten problem?

EDIT: Rejestr awarii (bieganie mvn deploy -X)

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project httpkit: Failed to deploy artifacts: Could not find artifact com.http:httpkit:jar:0.0.1 in internal.repo (http://jenkins.internal.com) -> [Help 1] 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project httpkit: Failed to deploy artifacts: Could not find artifact com.http:httpkit:jar:0.0.1 in internal.repo (http://jenkins.internal.com) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217) 
    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:320) 
    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.MojoExecutionException: Failed to deploy artifacts: Could not find artifact com.http:httpkit:jar:0.0.1 in internal.repo (http://jenkins.internal.com) 
    at org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:193) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) 
    ... 19 more 
Caused by: org.apache.maven.artifact.deployer.ArtifactDeploymentException: Failed to deploy artifacts: Could not find artifact com.http:httpkit:jar:0.0.1 in internal.repo (http://jenkins.internal.com) 
    at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:141) 
    at org.apache.maven.plugin.deploy.AbstractDeployMojo.deploy(AbstractDeployMojo.java:167) 
    at org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:157) 
    ... 21 more 
Caused by: org.sonatype.aether.deployment.DeploymentException: Failed to deploy artifacts: Could not find artifact com.http:httpkit:jar:0.0.1 in internal.repo (http://jenkins.internal.com) 
    at org.sonatype.aether.impl.internal.DefaultDeployer.deploy(DefaultDeployer.java:280) 
    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) 
    ... 23 more 
Caused by: org.sonatype.aether.transfer.ArtifactNotFoundException: Could not find artifact com.http:httpkit:jar:0.0.1 in internal.repo (http://jenkins.internal.com/) 
    at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:947) 
    at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:941) 
    at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$PutTask.run(WagonRepositoryConnector.java:837) 
    at org.sonatype.aether.connector.wagon.WagonRepositoryConnector.put(WagonRepositoryConnector.java:467) 
    at org.sonatype.aether.impl.internal.DefaultDeployer.deploy(DefaultDeployer.java:274) 
    ... 26 more 
[ERROR] 
[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/MojoExecutionException 
+0

W jakim celu próbujesz uciec z błędnej wersji? Czy możesz opublikować kilka ostatnich wierszy dziennika kompilacji dokładnie tak, jak się pojawiają? –

+0

Witaj, celem jest org.apache.maven.plugins: maven-deploy-plugin: 2.7: deploy (default-deploy). Dodałem ślad stosu błędów. – sockeqwe

+1

Publikuj całe pliki 'pom.xml' i' settings.xml'. Maven nie próbuje pobrać rzeczywistego słoika projektu, ale raczej - jeśli istnieje plik '.pom' już wdrożony na zdalnym hoście. Która wersja Mavena to jest? Którego repozytorium artefaktów używasz (Nexus, Artifactory, Archiva)? Czy skonfigurowałeś użytkownika z odpowiednimi uprawnieniami? – carlspring

Odpowiedz

15

Czy próbowałeś dodać do serwera w pliku settings.xml? Domyślne ustawienia xml znajdują się w katalogu ~/.m2 /. Powinien zawierać coś takiego:

<servers> 
     <server> 
      <id>my-internal-nexus-repo</id> 
      <username>yourUserName</username> 
      <password>yourPassword</password> 
     </server> 
</servers> 

Oto link do dokumentu http://maven.apache.org/settings.html maven do dodawania serwerów.

Jeszcze jedna rzecz, która może być strzałem w ciemność. Zauważyłem, że próbujesz połączyć się z tym, co sugeruje URL, może być instancją Jenkinsa. Jenkins jest serwerem Continuous Integration i wydawało mi się dziwne, że znajdujesz tam swoje repozytoria. Spodziewam się adresu URL Nexusa lub czegoś podobnego.

+0

Tak, masz rację. Miałem błąd w rozumowaniu. Jenkins ma dodatek do repozytorium maven, ale nie chodzi o to, aby wdrożyć tę wtyczkę, tak jakbym zrobił to z nexusem (tak myślałem, że ta wtyczka działa), ale żeby pozwolić jenkinsowi zbudować projekt i dodać artefakty do jenkinsa. magazyn. Wtedy możliwe jest, że nasi programiści używają lokalnego repozytorium jenkins jako zdalnego repozytorium :) – sockeqwe

+0

to jest złe. Identyfikator powinien być taki sam, jak identyfikator w pliku POM, więc internal.repo, a nie URL. –

+1

@ManfredMoser Tak, masz rację, nie powinien być URL repo, ale nazwa jak to nazwałeś , np. maven-central –

2

wpadłem na podobny problem i rozwiązać poprzez

  1. Dodanie mój serwer Nexus jako nonProxyHost w settings.xml
  2. Ustawianie Repository polityka 3rd party w celu uwolnienia zamiast Snapshot.

Zobacz więcej szczegółów w mojej stackoverflow answer.

Zauważ, że robiłem "mvn deploy: deploy-file" (który ładuje artefakt innej strony do współdzielonego repozytorium), podczas gdy robisz "wdrożenie mvn" (które przesyła TWÓJ artefakt z twojego zbudowanego projektu do współdzielone repozytorium), ale główna przyczyna może być taka sama.

4

(Dodanie późną odpowiedź w nadziei, że może pomóc ludziom, którzy google o pomoc ...)

miałem tego problemu, jak również. Po wielu (strasznie dużo) przeciągnięciu włosów zdałem sobie sprawę, że po prostu źle interpretowałem nazwę repozytorium!

Więc za pomocą przykładu PO w:

Failed to deploy artifacts: Could not find artifact com.http:httpkit:jar:0.0.1 in internal. 
repo (http://jenkins.intrnal.com) 

mógłby faktycznie oznaczać

Failed to deploy artifacts: Could not find internal.repo (http://jenkins.intrnal.com) 
+0

Co za odpowiedź na czas. Właśnie trafiłem ten dokładny błąd dzisiaj i to był rzeczywiście literówka w adresie URL repozytorium! –

+0

Miałem ten sam błąd, w moim przypadku polegał na tym, że host znajduje się za proxy, a ja musiałem dodać hosty do nonProxyHosts w settings.xml, maven nie używa ustawień proxy serwera proxy, w szczególności zmiennej no_proxy env na Linux –

0

w moim przypadku mój adres URL serwera w sekcji snapshotRepository z pom.xml wskazywał na http, podczas gdy mój wewnętrzny repozytorium było hostowane w https.