概述
本文针对一般的java工程,包括tomcat、springboot、普通的java -jar启动的工程的打包方式说明。
一个示例
在idea中,以项目和模块来说明。 项目中的pom一般是总体描述,具体细节在每个模块中,打包信息也同样在每个模块中。
无论哪个模块中的pom设置的profile,都能从全局识别到。如想输出到xxx目录,只需建立一个空的模块专门配置pom即可(当然,在原模块中的pom配置,就会在原模块下产出)。以hadoop打包为例,在hadoop工程中,我们可以从全局看到如下profiles:

可以看到在不同模块的profile配置,在全局都能看到的,都是能调用的。
以及hadoop的打包脚本:
#!/bin/sh
export JAVA_HOME=/usr/local/jdk1.8.0_65
export PATH=/usr/local/protobuf-2.5.0/bin:$PATH
mvn package -Pdist,native -Dtar -DskipTests -Dmaven.javadoc.skip=true -Drequire.snappy
if [ $? -ne 0 ]; then
exit -1
fi
if [ -d output ]; then
rm -rf output
fi
mkdir output
cp hadoop-dist/target/hadoop-*.tar.gz output/
可以看到输出目录在hadoop-dist/target,是因为专门建一个空的hadoop-dist模块用于放打包后的文件,如下:

该pom中部分打包配置:
<profiles>
<profile>
<id>dist</id>
<activation>
<activeByDefault>false</activeByDefault>
<property>
<name>tar</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>dist</id>
<phase>prepare-package</phase>
<goals>
<goal>run</goal>
</goals>
...
这里仅以一个大型工程打包作为示例,详细描述见下文。
Java工程打包与模块配置详解:Hadoop打包示例
本文详细介绍了一般Java工程中的打包策略,以SpringBoot、Tomcat项目和Hadoop工程为例,探讨了如何通过模块化设置和profile配置打包路径。特别展示了Hadoop项目的打包脚本和使用空模块管理输出目录的方法。
16万+

被折叠的 条评论
为什么被折叠?



