1

我有一个简单的 Java Spring MVC Web 应用程序。我使用 Maven pom.xml 文件构建 WAR 文件。

当我执行“maven install”时,它会生成一个 WAR 文件,其中包含我在/WEB-INFO/classes文件夹中编译的 Java 类。

我的 maven pom.xml 看起来像这样(依赖项被注释掉)......

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>mycompany.com</groupId>
    <artifactId>myapp</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>My Application</name>
    <url>http://maven.apache.org</url>
    <dependencies>

<!-- .... -->

    </dependencies>
    <build>
        <finalName>myapp</finalName>
    </build>
</project>

接下来我想混淆我的 Java 类(我将使用 Allatori 混淆器),所以我想最简单的方法是,如果我的 Java 类都被放入它们自己的 JAR 文件中,并/WEB-INF/lib与其余部分一起存储在文件夹中罐子。

有没有办法修改我的 Maven pom.xml 文件,以便它将我的类打包在一个 JAR 中并将 JAR 放在/WEB-INF/lib文件夹中?

更新:

将此添加到“构建”部分(如“JF Meier”所建议的那样)......

    <build>
        <finalName>myapp</finalName>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.3.0</version>
                <configuration>
                    <archiveClasses>true</archiveClasses>
                </configuration>
            </plugin>
        </plugins>

    </build>
4

2 回答 2

1

您可以使用<archiveClasses>配置(将其设置为true)生成带有类的附加 jar。

另见:

https://maven.apache.org/plugins/maven-war-plugin/war-mojo.html

于 2020-06-13T12:01:23.820 回答
0

将您的 Java 类移动到一个单独的 Maven 模块中,并将其作为依赖项添加到您的 WAR 项目中。然后,您可以做任何必要的事情,在该模块中创建 jar。

于 2020-06-12T23:03:06.947 回答