1

私はこのような単純なPOMを持っています:

<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>com.sim</groupId>
<artifactId>log4j</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<parent>
    <groupId>com.sim</groupId>
    <artifactId>sim-java</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath>../sim-java/pom.xml</relativePath>
</parent>

<name>log4j</name>

<dependencies>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
        <scope>compile</scope>
    </dependency>       
</dependencies>

mvn clean packageこのプロジェクトで実行すると、期待どおりに JAR が作成されます。

この JAR に移動すると、その中に log4j-1.2.17.jar という名前の JAR が表示されると思いましたが、そうではありません。

コンパイル スコープで依存関係を使用すると、プロジェクトのパッケージ バージョンに JAR が含まれませんか?

明確にしていただきありがとうございます

4

1 に答える 1

4

mavenのjar:jarプラグインは、ソースをコンパイルして jar にバンドルするだけです。アリや素手で jar を構築するのと同じように、依存関係のある jar は jar にバンドルされません。Jar は依存する jar を内部にバンドルすることはできず、バンドルされていたとしても、デフォルトのクラス ローダーによってロードすることはできません。

ejb-jar の構築を検討している場合は、 EJB プラグインを検討することをお勧めします。

悪用できるさまざまなプラグインについては、このリンクを確認してください。

于 2012-10-30T22:51:23.350 に答える