2016-06-24 6 views
3

Problem sein: ich Maven bin mit und bekam plötzlich einige Fehler:Maven - für Artefakt kann die Version nicht leer

For artifact {org.springframework.boot:spring-boot-starter-data-jpa:null:jar}: The version cannot be empty. (org.apache.maven.plugins:maven-resources-plugin:2.6:resources:default-resources:process-resources) 

org.apache.maven.artifact.InvalidArtifactRTException: For artifact {org.springframework.boot:spring-boot-starter-data-jpa:null:jar}: The version cannot be empty. 
    at org.apache.maven.artifact.DefaultArtifact.validateIdentity(DefaultArtifact.java:148) 
    at org.apache.maven.artifact.DefaultArtifact.<init>(DefaultArtifact.java:123) 
    at org.apache.maven.artifact.factory.DefaultArtifactFactory.createArtifact(DefaultArtifactFactory.java:157) 
    at org.apache.maven.artifact.factory.DefaultArtifactFactory.createDependencyArtifact(DefaultArtifactFactory.java:57) 
    at org.apache.maven.project.artifact.MavenMetadataSource.createDependencyArtifact(MavenMetadataSource.java:328) 
    at org.apache.maven.project.artifact.MavenMetadataSource.createArtifacts(MavenMetadataSource.java:503) 
    at org.apache.maven.lifecycle.internal.DefaultProjectArtifactFactory.createArtifacts(DefaultProjectArtifactFactory.java:50) 
    at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies(LifecycleDependencyResolver.java:119) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved(MojoExecutor.java:245) 
    at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:330) 
    at org.eclipse.m2e.core.internal.embedder.MavenImpl$11.call(MavenImpl.java:1362) 
    at org.eclipse.m2e.core.internal.embedder.MavenImpl$11.call(MavenImpl.java:1) 
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:176) 
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:112) 
    at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:1360) 
    at org.eclipse.m2e.core.project.configurator.MojoExecutionBuildParticipant.build(MojoExecutionBuildParticipant.java:52) 
    at org.eclipse.m2e.core.internal.builder.MavenBuilderImpl.build(MavenBuilderImpl.java:137) 
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:172) 
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:1) 
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod$1$1.call(MavenBuilder.java:115) 
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:176) 
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:112) 
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod$1.call(MavenBuilder.java:105) 
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:176) 
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:151) 
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:99) 
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.execute(MavenBuilder.java:86) 
    at org.eclipse.m2e.core.internal.builder.MavenBuilder.build(MavenBuilder.java:200) 
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:735) 
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:206) 
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:246) 
    at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:301) 
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:304) 
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:360) 
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:383) 
    at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:144) 
    at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:235) 
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) 

So habe ich das Artefakt Version <version>1.3.5.RELEASE</version> hinzugefügt Frühling-boot-Starter-Data- Jpa. Leider bekomme ich immer noch das gleiche Problem. Ich habe sogar den Cache von Maven gereinigt. maven -> update Projekt nicht helfen und project -> clean tat weder Hilfe

Frage: Was könnte ich falsch gemacht haben?

pom.xml

<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.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>SpringDataDemo</groupId> 
    <artifactId>SpringDataDemo</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.5.1</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.6</version> 
       <configuration> 
        <warSourceDirectory>WebContent</warSourceDirectory> 
        <failOnMissingWebXml>false</failOnMissingWebXml> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

    <repositories> 
     <repository> 
      <id>spring-releases</id> 
      <name>Spring Releases</name> 
      <url>https://repo.spring.io/libs-release</url> 
     </repository> 
     <repository> 
      <id>org.jboss.repository.releases</id> 
      <name>JBoss Maven Release Repository</name> 
      <url>https://repository.jboss.org/nexus/content/repositories/releases</url> 
     </repository> 
    </repositories> 

    <pluginRepositories> 
     <pluginRepository> 
      <id>spring-releases</id> 
      <name>Spring Releases</name> 
      <url>https://repo.spring.io/libs-release</url> 
     </pluginRepository> 
    </pluginRepositories> 

    <properties> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
      <version>1.3.5.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>com.h2database</groupId> 
      <artifactId>h2</artifactId> 
      <version>1.4.192</version> 
     </dependency> 

    </dependencies> 


</project> 

Eclipse-markiert seltsame Linien rot, wenn es wirklich eine Frage der Versionsnummern ist:

enter image description here

enter image description here

Antwort

11

Sie müssen von Spring-Boot-Mutter POM erben:

Versionen
<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.3.5.RELEASE</version> 
</parent> 

Diese Mutter POM erklärt viele Abhängigkeit für Artefakte Sie an Ihren Projekten verwenden können Auf diese Weise müssen Sie es nicht selbst angeben.

Vom docs:

Jede Version von Spring-Boot bietet eine kuratierte Liste der Abhängigkeiten es unterstützt. In der Praxis müssen Sie keine der Versionen diese Abhängigkeiten in Ihrer Erstellungskonfiguration angeben, da Spring Boot dies für Sie verwaltet. Wenn Sie Spring Boot selbst aktualisieren, werden diese -Abhängigkeiten ebenfalls konsistent aktualisiert.

Siehe auch:

+3

Um dies zum Laufen zu bringen, musste ich meine Version von Maven upgraden. Ich hatte 3.2.3 und bekam den OP Fehler. Ich habe gerade 3.3.9 heruntergeladen und das Problem behoben. –

0

Die Version in der folgenden fehlt Plugin-Deklaration:

 <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 

Fügen Sie einfach die Version:

 <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
      <version>1.3.5.RELEASE</version> 
     </plugin> 
+0

Dank für Ihre Hilfe danken. Ich habe die Version zur Plugin-Deklaration hinzugefügt. Leider ist der Fehler nicht verschwunden. Ich habe sogar ein Maven -> Update-Projekt gemacht. Hast du noch eine Idee, was ich falsch gemacht haben könnte? – jublikon

Verwandte Themen