Нулевая зависимость Maven и несколько аннотаций в этой строке

Что-то пошло не так с моим pom, и у меня есть пустая зависимость и идентификатор артефакта в xml, но я получаю ту же ошибку, удаляю ли я теги или нет.

Я использую eclipse с m2eclipse, установленным в моей домашней папке на Linux Mint 14 с установленной версией maven «Apache Maven 2.2.1 (rdebian-8)».

Вот 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>TransferHandler</groupId>
  <artifactId>TransferHandler</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <testSourceDirectory>test</testSourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>javax.mail</artifactId>
        <version>1.4.6-rc1</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-vfs2</artifactId>
        <version>2.0</version>
    </dependency>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>com.jcraft</groupId>
        <artifactId>jsch</artifactId>
        <version>0.1.49</version>
    </dependency>
    <dependency>
        <groupId>commons-net</groupId>
        <artifactId>commons-net</artifactId>
        <version>3.2</version>
        <classifier>ftp</classifier>
    </dependency>
    <dependency>
        <groupId>commons-httpclient</groupId>
        <artifactId>commons-httpclient</artifactId>
        <version>3.1</version>
    </dependency>
    <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.2.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-io</artifactId>
        <version>1.3.2</version>
    </dependency>
    <dependency>
        <artifactId></artifactId>
    </dependency>
  </dependencies>
</project>

Отображается три сообщения об ошибках:

В строке 1:

В этой строке найдено несколько аннотаций: - null (org.apache.maven.plugins:maven-resources-plugin:2.5:resources:default-resources:process-resources) - null (org.apache.maven.plugins:maven-resources -plugin:2.5:testResources:default-testResources:process-test- ресурсы)

В строке 70:

В этой строке найдено несколько аннотаций: - Ошибка сборки проекта: отсутствует 'dependencies.dependency.groupId' для null::jar. - Ошибка сборки проекта: отсутствует 'dependencies.dependency.version' для null::jar.

В строке 71:

Ошибка сборки проекта: отсутствует 'dependencies.dependency.artifactId' для null::jar.

Кажется, что причина в строке 70 с пустыми тегами (отрывок ниже), но я не уверен.

<dependency>
        <artifactId></artifactId>
</dependency> 

Даже если я удалю пустые теги из xml и обновлю maven и проект, ошибка останется. На вкладке «Зависимости» я вижу банку со знаком «?» рядом с ним, но не могу его удалить, а на вкладке «Иерархия зависимостей» я вижу банку «: [compile]», но могу удалить или исключить ее.

Как я могу удалить эту призрачную/нулевую банку?


person eljaydub    schedule 06.02.2013    source источник
comment
Вам нужно обновить свой проект, а не только обновить конфигурацию. Проблема в Eclipse, который необходимо перезагрузить, что можно сделать, нажав на проект -> Maven -> Обновить проект.   -  person khmarbaise    schedule 06.02.2013
comment
Спасибо, кхмар, я тоже пробовал, но ошибки все еще есть, а '?' jar все еще находится под зависимостями   -  person eljaydub    schedule 06.02.2013


Ответы (2)


Попробуйте этот заголовок

<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/maven-v4_0_0.xsd"> 

Удачи !

person Don Ramos    schedule 06.02.2013
comment
Спасибо, Дон, но это тоже не сработало; Я все еще получаю сообщение об ошибке: В этой строке найдено несколько аннотаций: - null (org.apache.maven.plugins:maven-resources-plugin:2.5:resources:default-resources:process-resources) - null (org.apache.maven .plugins:maven-resources-plugin:2.5:testResources:default-testResources:process-test-resources) в этой строке, а также другие ошибки - person eljaydub; 06.02.2013
comment
Попробуйте запустить mvn -U install из командной строки, а затем Maven->Update Project из Eclipse. - person Don Ramos; 06.02.2013

Я нашел способ обойти проблему с помощью git, но не смог решить ее напрямую, удалив проблемные пакеты. Обходной путь заключался в том, чтобы отключить eclipse, удалить pom, а затем использовать git для отмены изменений в рабочем каталоге. Команды:

 rm pom.xml
 git checkout -- pom.xml

Затем pom должен вернуться в свое состояние при последней фиксации (что, к счастью для меня, было до возникновения этой ошибки). Не очень удовлетворительный ответ, но, по крайней мере, он сработал. Если кто-нибудь опубликует ответ и объяснение сути реальной проблемы (например, почему я не могу удалить пакет null и как он вообще туда попал), я все равно буду рад принять Это.

person eljaydub    schedule 06.02.2013