更改类时如何在Wildfly中更新MANIFEST

时间:2019-01-27 11:31:02

标签: java maven java-ee jboss wildfly

我用Wildfly安装了Eclipse和Jboss工具插件。我创建了一个EAR项目,一个WAR项目和两个EJB jar项目app1app2。我将所有项目都转换为Maven。

app1使用app2类。这在Eclipse中编译良好。但是,当我运行该应用程序时,我得到了ClassNotFoundException

EAR pom.xml具有依赖项:

<dependencies>
    <dependency>
        <groupId>app1</groupId>
        <artifactId>app1</artifactId>
        <version>1.0</version>
        <type>ejb</type>
    </dependency>
    <dependency>
        <groupId>mywar</groupId>
        <artifactId>mywar</artifactId>
        <version>1.0</version>
        <type>war</type>
    </dependency>
    <dependency>
        <groupId>app2</groupId>
        <artifactId>app2</artifactId>
        <version>1.0</version>
        <type>ejb</type>
    </dependency>
</dependencies>

如果我在清单中的app2.jar的类路径中添加app1,则app1可以找到该类。问题是,当我在app1中更改类时,将自动重新创建MANIFEST,并删除类路径。

这有效:

 Class-Path: app2-1.0.jar

我在app1 pom.xml中添加了一个插件,用于在类更改时更新MANIFEST,但它没有任何改变:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.0.1</version>
            <configuration>
                <archive>
                    <manifest>                                                       
                        <addClasspath>true</addClasspath>
                    </manifest>
                    <manifestEntries>
                        <Class-Path>app2-1.0.jar</Class-Path>
                    </manifestEntries>
                </archive>
            </configuration>
        </plugin>  

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

这解决了app1 pom.xml中的问题:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.0.1</version>
    <configuration>
        <archive>
            <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                <addClasspath>true</addClasspath>
            </manifest>
            <manifestEntries>
                <Class-Path>app2-1.0.jar</Class-Path>
            </manifestEntries>
        </archive>
    </configuration>
</plugin>