web-dev-qa-db-ja.com

Eclipse Mavenエラー:プロジェクト内の必要なライブラリのアーカイブを読み取ることができないか、有効なZipファイルではありません

Spring WebMVCを使用するEclipseMavenプロジェクトで、[マーカー]タブに次のエラーが表示されます。

Archive for required library: 'D:/mypath/.m2/repository/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar' in project 'DocumentManager' cannot be read or is not a valid Zip file

確認しましたが、jarファイルは実際には示されたURLに存在します。 jarのバックアップをコピーして、その場所にあるjarファイルを上書きしましたが、それでもエラーは解消されませんでした。 Mavenを強制的に更新しましたが、問題は解決しませんでした。また、Eclipseを再起動しても効果はありませんでした。

ある時点で、jta-1.0.1B.jarはjta-1.0.1B.jar.LatestUpdateだったので、名前をjta-1.0.1B.jarに短縮しました。

Pom.xmlでは、エラーメッセージの場所は2行目で、次のようになっています。

xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">  

this url からjta-1.0.1B.jarを手動でダウンロードすると、pom.xmlのエラーはなくなりますが、.Javaクラスファイルの新しいエラーに置き換えられ、Documentクラスの5つのメソッドが有効ではありません。

thisthis を読みましたが、strutsを使用していません。すでに、3.3.2.gaの休止状態が含まれており、pomにリポジトリタグがありません。 xml( this はとにかく問題を解決しなかったと言った)ので、これは重複しているとは思わない。

誰かがこの問題を解決する方法を提案できますか?リポジトリタグが必要な場合、どこに配置しますか?そして、その追加に対応するために他に何を変更しますか?

興味のある人のために、私のpom.xmlは次のように参照用に含まれています。

<?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.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <description></description>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.0.1</version>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-orm</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.1.2</version>
    </dependency>
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-entitymanager</artifactId>
      <version>3.3.2.GA</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-Java</artifactId>
      <version>5.1.10</version>
    </dependency>
    <dependency>
      <groupId>commons-dbcp</groupId>
      <artifactId>commons-dbcp</artifactId>
      <version>20030825.184428</version>
    </dependency>
    <dependency>
      <groupId>commons-pool</groupId>
      <artifactId>commons-pool</artifactId>
      <version>1.5.4</version>
    </dependency>
    <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.2.1</version>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>1.3</version>
    </dependency>
<!-- dependency to fix JSPServletException -->
    <dependency>
        <groupId>org.Apache.Tomcat</groupId>
        <artifactId>jsp-api</artifactId>
        <version>6.0.32</version>
        <scope>provided</scope>               
    </dependency>
  </dependencies>
  <properties>
    <org.springframework.version>3.2.4.RELEASE</org.springframework.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <groupId>DocumentManager</groupId>
  <artifactId>DocumentManager</artifactId>
</project>  
9
CodeMed

このような問題を修正するには、Mavenにファイルを再度ダウンロードさせます。

  1. フォルダを削除しますD:/mypath/.m2/repository/javax/transaction/jta
  2. -Uを指定してMavenを実行すると、壊れたダウンロードが再試行されます。

これで、ファイルを再度ダウンロードして、ローカルリポジトリ内の「残留物」をクリーンアップする必要があります。

それでもEclipseがJARファイルが破損していると文句を言う場合:

  1. プロジェクトを更新します(F5 またはコンテキストメニューから)
  2. プロジェクトをクリーンアップする
  3. JARファイルを開こうとします。多分それは本当に壊れています。

JARファイルが破損している場合は、フォルダーを再度削除して、Mavenをもう一度実行します。 Mavenがアーカイブのダウンロードに使用したURLをメモし、そのサイトの管理者に連絡してください。

15
Aaron Digulla

エラーコンソールで指定されているリポジトリに手動で移動できます。Archive for required library: '**D:/mypath/.m2/repository/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar**' in project 'DocumentManager' cannot be read or is not a valid Zip file

上記のJARを削除します

Eclipseに移動し、プロジェクトを右クリックして、[実行]-> [maven-install]を選択します。適切なjarファイルをダウンロードします。

2

私の問題は、小さな十字マークが付いているBuild Path-> Configure Build Path-> Libraries-> Remove the jta libに移動することで修正されました。

プロジェクトを正常にビルドできましたが、プロジェクトの更新/プロジェクトのクリーンアップ後もこのエラーが発生していました。

1
Amit Kumar

Hibernate依存関係からJTAを除外する必要があります。

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate</artifactId>
    <version>3.2.3.ga</version>
    <exclusions>
        <exclusion>
            <artifactId>javax.transaction</artifactId>
            <groupId>jta</groupId>
        </exclusion>
    </exclusions>
</dependency>

その後、jta依存関係を追加します。

<dependency>
    <groupId>javax.transaction</groupId>
    <artifactId>jta</artifactId>
    <version>1.1</version>
</dependency>
1
user3638990

1.5.5リリースjarで試してみましたが、うまくいきました

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

https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent/1.5.5.RELEASE

0
SRI RaMan

この問題を簡単に修正するには。

  1. 関連プロジェクトの「Maven依存関係」ですべてのライブラリを選択します。
  2. マウスの右ボタンの「更新」を行うだけです...

理由はキャッシュ情報なので、情報を更新するだけです。

0
Munseok Koh

Maven中央リポジトリには、指定されたgroupId/artifactIdのjarファイルは含まれていませんpom.xmlのみです。

maven central results

Spring 3.2を使用しているので、hibernateをjta 1.1への参照を持つ最新バージョン(4.2.6.Final)にアップグレードすることをお勧めします。または、MavenCentralにjarがある1.1バージョンをpomに含めるだけです。

0
M. Deinum