0

Maven WAR での Java クラスのフィルタリングに苦労しています。Maven は多くの Java クラスをコンパイルし、それらはすべて

target/classes

そして、私は次のようなパッケージを持っています:

a/A.class
a/b/B.class
a/b/C.class

ここまではOKです。しかし、私が必要としているのは、内部に単一の Java クラスを持つことです。

WEB-INF/classes

このように:

a/b/B.class

これは、私の pom.xml からのプラグインのセクションです。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <warName>${project.artifactId}</warName>
        <webXml>${basedir}/src/main/application/WEB-INF/web.xml</webXml>
        <packagingExcludes>WEB-INF/lib/*.jar,a/A.class,a/b/C.class</packagingExcludes>
        <webResources>
            <resource>
                <directory>${basedir}/src/main/application/WEB-INF</directory>
                <includes>
                    <include>jboss-web.xml</include>
                </includes>
                <targetPath>WEB-INF</targetPath>
            </resource>
            <resource>
                <directory>${basedir}/src/main/application/META-INF</directory>
                <includes>
                    <include>standard-jaxws-endpoint-config.xml</include>
                </includes>
                <targetPath>META-INF</targetPath>
            </resource>
        </webResources>
    </configuration>
</plugin>

残念ながら、すべてのクラスが WAR にパッケージ化されています。

ヒントはありますか?

よろしくお願いします、SK

4

1 に答える 1

1

これにより、ターゲット ディレクトリにビルドされたアプリへの相対位置に基づいてクラスがフィルター処理されると思います。これは、この段階でクラス ファイルが WEB-INF/classes に格納されていることを意味します。

これを変更してみてください:

<packagingExcludes>WEB-INF/lib/*.jar,a/A.class,a/b/C.class

<packagingExcludes>WEB-INF/lib/*.jar,WEB-INF/classes/a/A.class,WEB-INF/classes/a/b/C.class
于 2014-03-17T13:55:17.647 に答える