maven-assembly-plugin打包与windows编译

本文详细介绍了在IntelliJ IDEA中如何配置pom.xml文件,以实现将项目打包为不同类型的包,包括JAR和WSGI。通过配置maven的appassembler-maven-plugin和maven-assembly-plugin插件,可以生成包含bin、conf、lib和logs目录的结构,适合于不同环境的部署。此外,还展示了如何根据不同的环境配置JVM参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.idea的默认打包方式是, 讲醒目打包成jar包, 

2,对于想打包成其他类型的包那么可以选择以下方式配置,然后在打包。

pom.xml配置

>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <excludes>
                    <exclude>env/**</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources/env/${env}</directory>
                <targetPath>${project.build.outputDirectory}</targetPath>
                <filtering>true</filtering>
            </resource>
        </resources>
        <testResources>
            <testResource>
                <directory>src/test/resources</directory>
                <filtering>true</filtering>
            </testResource>
        </testResources>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>appassembler-maven-plugin</artifactId>
                <version>1.10</version>
                <configuration>
                    <repositoryLayout>flat</repositoryLayout>
                    <repositoryName>lib</repositoryName>
                    <configurationDirectory>conf</configurationDirectory>
                    <copyConfigurationDirectory>true</copyConfigurationDirectory>
                    <configurationSourceDirectory>src/main/resources/env/${env}</configurationSourceDirectory>
                    <includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
                    <target>${project.build.directory}</target>
                    <daemons>
                        <daemon>
                            <id>${project.artifactId}</id>
                            <!-- 修改包名 -->
                            <mainClass>com.chinaredstar.fmall.hub.core.HubCoreApplication</mainClass>
                            <platforms>
                                <platform>jsw</platform>
                            </platforms>
                            <wrapperLogFile>logs/${project.artifactId}.log</wrapperLogFile>
                            <generatorConfigurations>
                                <generatorConfiguration>
                                    <generator>jsw</generator>
                                    <includes>
                                        <include>macosx-universal-64</include>
                                        <include>linux-x86-32</include>
                                        <include>linux-x86-64</include>
                                        <include>windows-x86-32</include>
                                        <include>windows-x86-64</include>
                                    </includes>
                                    <configuration>
                                        <property>
                                            <name>configuration.directory.in.classpath.first</name>
                                            <value>conf</value>
                                        </property>
                                        <property>
                                            <name>set.default.REPO_DIR</name>
                                            <value>lib</value>
                                        </property>
                                        <property>
                                            <name>wrapper.ping.timeout</name>
                                            <value>300</value>
                                        </property>
                                        <property>
                                            <name>wrapper.startup.timeout</name>
                                            <value>300</value>
                                        </property>
                                    </configuration>
                                </generatorConfiguration>
                            </generatorConfigurations>
                            <jvmSettings>
                                <initialMemorySize>${jvmSettings.initialMemorySize}</initialMemorySize>
                                <maxMemorySize>${jvmSettings.maxMemorySize}</maxMemorySize>
                                <maxStackSize>128</maxStackSize>
                                <extraArguments>
                                    <extraArgument>-server</extraArgument>
                                    <extraArgument>${jvmSettings.javaagent}</extraArgument>
                                    <!-- 注意注意!!! jvmSettings.agentId长度不能超过13个长度 , 并且中间加符号"-" 占一位 预留10个长度给到脚本自动追加hostname
                                        做全局唯一标识 -->
                                    <extraArgument>-Dpinpoint.agentId=${jvmSettings.agentId}-</extraArgument>
                                    <!-- 注意注意!!! jvmSettings.agentApplicationName 只能包含 [a-zA-Z0-9],
                                        '.', '-', '_'. 最大长度:24 -->
                                    <extraArgument>-Dpinpoint.applicationName=${jvmSettings.agentApplicationName}
                                    </extraArgument>
                                    <extraArgument>-XX:MetaspaceSize=128M</extraArgument>
                                    <extraArgument>-XX:MaxMetaspaceSize=512M</extraArgument>
                                    <extraArgument>-XX:+HeapDumpOnOutOfMemoryError</extraArgument>
                                    <extraArgument>-XX:HeapDumpPath=/logs/${project.artifactId}/dump.hprof
                                    </extraArgument>
                                    <extraArgument>-Djava.net.preferIPv4Stack=true</extraArgument>
                                </extraArguments>
                            </jvmSettings>
                        </daemon>
                    </daemons>
                </configuration>
                <executions>
                    <execution>
                        <id>generate-jsw-scripts</id>
                        <phase>package</phase>
                        <goals>
                            <goal>generate-daemons</goal>
                            <goal>create-repository</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <finalName>${project.artifactId}</finalName>
                    <descriptors>
                        <descriptor>src/main/assembly/bin.xml</descriptor>
                    </descriptors>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <profiles>
        <!-- dev -->
        <profile>
            <id>dev</id>
            <properties>
                <env>dev</env>
                <jvmSettings.initialMemorySize>512</jvmSettings.initialMemorySize>
                <jvmSettings.maxMemorySize>512</jvmSettings.maxMemorySize>
                <jvmSettings.javaagent>-server</jvmSettings.javaagent>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>uat1</id>
            <properties>
                <env>uat1</env>
                <jvmSettings.initialMemorySize>768</jvmSettings.initialMemorySize>
                <jvmSettings.maxMemorySize>768</jvmSettings.maxMemorySize>
                <jvmSettings.javaagent>
                    -javaagent:/data/app/pinpoint-agent-1.8.3/pinpoint-bootstrap-1.8.3.jar
                </jvmSettings.javaagent>
            </properties>

        </profile>
        <!-- stg -->
        <profile>
            <id>stg</id>
            <properties>
                <env>stg</env>
                <jvmSettings.initialMemorySize>2560</jvmSettings.initialMemorySize>
                <jvmSettings.maxMemorySize>2560</jvmSettings.maxMemorySize>
                <jvmSettings.javaagent>
                    -javaagent:/data/app/pinpoint-agent-1.8.3/pinpoint-bootstrap-1.8.3.jar
                </jvmSettings.javaagent>
            </properties>
        </profile>
        <!-- prd -->
        <profile>
            <id>prd</id>
            <properties>
                <env>prd</env>
                <jvmSettings.initialMemorySize>4096</jvmSettings.initialMemorySize>
                <jvmSettings.maxMemorySize>4096</jvmSettings.maxMemorySize>
                <jvmSettings.javaagent>
                    -javaagent:/data/app/pinpoint-agent-1.8.3/pinpoint-bootstrap-1.8.3.jar
                </jvmSettings.javaagent>
            </properties>
        </profile>
    </profiles>

 

 打包后的目录结构:

 

 bin: 启动脚本

conf: 配置信息 

lib:用的jar包

logs:所有日志信息

 

3.在bin文件夹中存在启动脚本, 具体如何操作需要有bat操作命令基础。

-----------------

后续内容下一节;

坚持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值