5

m2eでEclipse Kepler SR2を使用しています。jar に依存する Web プロジェクトがあります。

目標パッケージで「Run as -> Maven Build...」を使用し、「Check Workspace artifacts」がチェックされている場合、ターゲットの lib フォルダーには、jar 自体ではなく、依存関係の jar の名前のフォルダーが含まれます。パッケージ化された war には、jar の代わりにフォルダーも含まれています。ただし、m2e で tomcat にデプロイすると、jar は正しくデプロイされます。

maven-war-plugin バージョン 2.4 を使用しています。

これは私のWARポンです:

<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>
  <parent>
    <groupId>com.modelity.loans</groupId>
    <artifactId>loans-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>loans-web</artifactId>
  <packaging>war</packaging>

  <dependencies>
    <dependency>
        <groupId>com.modelity.loans</groupId>
        <artifactId>loans-core</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <type>jar</type>
    </dependency>
  </dependencies>


  <build>
      <plugins>
            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.4</version>
        </plugin>
      </plugins>
  </build>
</project>

そして、これは依存関係 jar のアーティファクト座標です。

<parent>
    <groupId>com.modelity.loans</groupId>
    <artifactId>loans-lib</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>loans-core</artifactId>
<packaging>jar</packaging>

maven パッケージのゴールのデバッグ出力を見てきました。war プラグインが jar を処理しているとき、それは言う

[DEBUG] Processing: loans-core-0.0.1-SNAPSHOT.jar

jar がコピーされたことを示すことなく。後でログに表示されます:

adding directory WEB-INF/lib/loans-core-0.0.1-SNAPSHOT.jar/

埋め込み Maven (3.0.4) と外部 Maven (3.0.5) の両方を試しました。私の同僚は kepler SR1 を使用しており、同じ問題を経験しています。

私はそれをすべてカバーしたと思います。報告されたバグは見つかりませんでした。

ありがとう、リオール

4

2 に答える 2

1

jar を独自の maven 制御アーティファクトとしてインストールしてみてください。

mvn install:install-file -Dfile=my.jar -DgroupId=com.mycorp -DartifactId=my-jar -Dversion=1.0 -Dpackaging=jar

そして、それを戦争のmaven依存関係として定義します

于 2014-04-30T14:13:24.763 に答える