是否可以让 Maven "WAR" pom.xml 将我的 类 打包到 JAR 中并将 JAR 放入 /WEB-INF/lib 文件夹中?
Is it possible to have Maven "WAR" pom.xml package up my classes up in a JAR and put the JAR in the /WEB-INF/lib folder?
我有一个简单的 Java Spring MVC 网络应用程序。我使用 Maven pom.xml 文件构建 WAR 文件。
当我执行 "maven install" 时,它会在 /WEB-INFO/classes
文件夹中生成一个 WAR 文件,其中包含我编译的 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 文件中,并与其余 JAR 一起存储在 /WEB-INF/lib
文件夹中。
有没有办法修改我的 Maven pom.xml 文件,以便它将我的 类 打包到一个 JAR 中并将 JAR 放入 /WEB-INF/lib
文件夹中?
更新:
将此添加到 'build' 部分(按照 "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>
将您的 Java 类 移动到单独的 Maven 模块中,并将其作为依赖项添加到您的 WAR 项目中。然后你可以做任何必要的事情,在那个模块中创建 jar。
您可以使用 <archiveClasses>
配置(将其设置为 true
)生成带有 类 的附加 jar。
另见:
https://maven.apache.org/plugins/maven-war-plugin/war-mojo.html
我有一个简单的 Java Spring MVC 网络应用程序。我使用 Maven pom.xml 文件构建 WAR 文件。
当我执行 "maven install" 时,它会在 /WEB-INFO/classes
文件夹中生成一个 WAR 文件,其中包含我编译的 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 文件中,并与其余 JAR 一起存储在 /WEB-INF/lib
文件夹中。
有没有办法修改我的 Maven pom.xml 文件,以便它将我的 类 打包到一个 JAR 中并将 JAR 放入 /WEB-INF/lib
文件夹中?
更新:
将此添加到 'build' 部分(按照 "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>
将您的 Java 类 移动到单独的 Maven 模块中,并将其作为依赖项添加到您的 WAR 项目中。然后你可以做任何必要的事情,在那个模块中创建 jar。
您可以使用 <archiveClasses>
配置(将其设置为 true
)生成带有 类 的附加 jar。
另见:
https://maven.apache.org/plugins/maven-war-plugin/war-mojo.html