Tomact部署classFinal加密版的war包

参考文档官网下载地址

1.打包配置,我这里没有设置密码

<build>
        <finalName>project_name</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <!-- https://gitee.com/roseboy/classfinal -->
                <groupId>net.roseboy</groupId>
                <artifactId>classfinal-maven-plugin</artifactId>
                <version>1.2.1</version>
                <configuration>
                    <password>#</password><!--加密打包之后pom.xml会被删除,不用担心在jar包里找到此密码-->
                    <packages>com.yourpackage,com.yourpackage2</packages>
                    <cfgfiles>application.yml</cfgfiles>
                    <excludes>org.spring</excludes>
                    <libjars>a.jar,b.jar</libjars>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>classFinal</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <!--</plugins>-->
        <resources>
            <resource>
                <directory>src/main/webapp</directory>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>

2.打完包如下

3.将classfinal-fatjar-1.2.1.jar包放到tomcta\bin目录下,这一步很重要!!!!

4.设置tomact\bin目录下catalina文件

//linux下 catalina.sh
CATALINA_OPTS="$CATALINA_OPTS -javaagent:classfinal-fatjar.jar='-nopwd'";
export CATALINA_OPTS;

//win下catalina.bat
set JAVA_OPTS="-javaagent:classfinal-fatjar.jar='-nopwd'"

我这里用的事linux版的

总结:到此所有步骤已经做完,可以启动啦

### 如何将Spring Boot JAR项目打WAR文件部署 #### 修改`pom.xml` 为了使Spring Boot应用程序能够被打WAR文件而不是默认的JAR文件,在Maven项目的`pom.xml`中,需调整构建部分并引入Tomcat依赖作为提供者。具体来说,应设置`<packaging>`标签值为`war`,并将嵌入式的Servlet容器(如Tomcat)设为`provided`范围,这意味着该库仅用于编译阶段而不会被含到最终的WAR文件中[^1]。 ```xml <build> <finalName>demo</finalName> <plugins> <!-- Spring Boot Maven Plugin --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> </dependencies> ``` #### 继承`SpringBootServletInitializer` 为了让应用能够在传统的Servlet容器内启动,比如Apache Tomcat或Jetty,主类应当继承自`SpringBootServletInitializer`并覆盖其`configure()`方法。这一步骤对于确保当通过外部服务器加载WAR文件时能正确初始化Spring上下文至关重要[^3]。 ```java public class Application extends SpringBootServletInitializer { private static final Logger logger = LoggerFactory.getLogger(Application.class); @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(Application.class); } public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); } } ``` 完成上述更改之后,可以通过执行标准的Maven命令来构建WAR文件: ```bash mvn clean package ``` 生成的WAR文件可以放置于任何兼容Java EE规范的应用程序服务器上运行,例如Apache Tomcat、JBoss WildFly等[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值