maven项目打包(欢迎指正呀)

本文介绍了如何使用maven的maven-dependency-plugin, maven-resources-plugin和maven-jar-plugin进行项目打包,并展示了详细的bootstrap.sh脚本内容,涉及JAVA_HOME环境变量检查、JAVA_OPTS设置以及启动命令的构建。同时提到了maven-shade-plugin用于打成单一jar包,参考了相关文章链接。" 8135411,1356399,Android SMS接收流程解析,"['Android开发', '消息处理', '广播接收者', '数据库操作', '通知机制']
摘要由CSDN通过智能技术生成

打包常用的插件
maven-dependency-plugin(打包依赖的jar包)
maven-resources-plugin (项目资源插件)
maven-jar-plugin (打jar 包)

      <!---公用资源处理--->
	  <resources>
        <resource>
            <targetPath>${project.build.directory}}/webRoot</targetPath>
            <directory>src/main/webapp</directory>
        </resource>
    </resources>
    <testResources>
        <testResource>
            <directory>src/test/resources</directory>
        </testResource>
    </testResources>
	
	<!--公用打包后的项目名称--->
    <finalName>kk-scheduler</finalName>
      
      <plugins>

        <!--编译插件-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
                <compilerArguments>
                    <verbose />
                    <bootclasspath>${java.home}/lib/rt.jar</bootclasspath>
                </compilerArguments>
            </configuration>
        </plugin>
		
		
		<!--打包依赖的jar包-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <configuration>
                <outputDirectory>${project.build.directory}/lib</outputDirectory>
                <excludeTransitive>false</excludeTransitive> <!-- 表示是否不包含间接依赖的包 -->
                <stripVersion>false</stripVersion> <!-- 去除版本信息 -->
            </configuration>

            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
					
					<!--上面已经存在,此处配置可以不需要-->
                    <!--   <configuration> -->
                </execution>
            </executions>
        </plugin>


        <!-- 项目资源插件 -->
		<!-- 资源可以通过 resources 标签 复制  此插件 增加了一部分功能  没有必要的情况下可以 去掉 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.6</version>
            <executions>
                <execution>
                    <id>copy-resources</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <encoding>UTF-8</encoding>
                        <!-- 拷贝项目src/main/resources/下,除.bat和.sh以外的所有文件到conf/目录下 -->
                        <outputDirectory>${project.build.directory}/conf</outputDirectory>
                        <resources>
                            <resource>
                                <directory>src/main/resources/</directory>
                                <filtering>true</filtering>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
                <execution>
                    <id>copy-command</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <encoding>UTF-8</encoding>
                        <!-- 只拷贝项目src/main/resources/目录下的.bat文件到输出目录下 -->
                        <outputDirectory>${project.build.directory}/webroot</outputDirectory>
                        <resources>
						<resource>
							<directory>src/main/webapp</directory>
						</resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>

        <!-- 打成jar包插件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <archive>
                    <!--生成的jar中,不要包含pom.xml和pom.properties这两个文件-->
                    <addMavenDescriptor>false</addMavenDescriptor>
                    <!-- 生成MANIFEST.MF的设置 -->
                    <manifest>
                        <!-- 为依赖包添加路径, 这些路径会写在MANIFEST文件的Class-Path下 -->
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                        <!-- jar启动入口类-->
                        <mainClass>cn.net.yto.overseas.kk.KkBootstrap(入口类的包路径)</mainClass>
                    </manifest>
                    <manifestEntries>
                        <!-- 在Class-Path下添加配置文件的路径 -->
                        <Class-Path>conf/</Class-Path>
                    </manifestEntries>
                </archive>
                <outputDirectory>${project.build.directory}/</outputDirectory>
            </configuration>
        </plugin>
    </plugins>
</build>

<!--  配置  执行参数  mvn clean package -P release -->
<profiles>
  
    <profile>
        <id>release</id>
        <build>
            <resources>
                <resource>
                    <targetPath>${project.basedir}/target/conf/</targetPath>
                    <directory>configure/public</directory>
                </resource>
                <resource>
                    <targetPath>${project.basedir}/target/conf/</targetPath>
                    <directory>configure/release</directory>
                </resource>
                   <resource>
                    <targetPath>${project.basedir}/target/conf/</targetPath>
                    <directory>configure/release</directory>
                </resource>
            </resources>
        </build>
     </profile>
</profiles>

-----------------------------------以上为一般项目打jar包的,现在有了springBoot之后,有专门打jar包方式----------------------------------------------------


-----------------------------------以下为打成linux的shell脚本方式启动jar包----------------------------------------------------

<build>
	<resources>
		<resource>
			<targetPath>${project.basedir}/webRoot/</targetPath>
			<directory>src/main/webapp</directory>
		</resource>
	</resources>
	<testResources>
		<testResource>
			<directory>src/test/resources</directory>
		</testResource>
	</testResources>
	<finalName>kk-scheduler</finalName>
	<plugins>

		<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}-${project.version}</finalName>
				<archive>
					<manifest>
						<mainClass>cn.net.yto.overseas.kk.KkBootstrap</mainClass>
					</manifest>
				</archive>
				<descriptors>
				    <!-- 按照assembly.xml文件指定的格式打包 -->
					<descriptor>src/main/resources/assembly.xml</descriptor>
				</descriptors>
			</configuration>
		</plugin>

	</plugins>
</build>
<profiles>
	<profile>
		<id>dev</id>
		<activation>
			<activeByDefault>true</activeByDefault>
		</activation>
		<build>
			<resources>
				<resource>
					<directory>src/main/resources</directory>
					<excludes>
						<exclude>assembly.xml</exclude>
					</excludes>
				</resource>
			</resources>
		</build>
	</profile>
	<profile>
		<id>sit</id>
		<build>
			<resources>
				<resource>
					<targetPath>${project.basedir}/target/conf/</targetPath>
					<directory>configure/public</directory>
				</resource>
				<resource>
					<targetPath>${project.basedir}/target/conf/</targetPath>
					<directory>configure/sit</directory>
					<excludes>
						<exclude>assembly.xml</exclude>
					</excludes>
				</resource>
			</resources>
		</build>
	</profile>
	<profile>
		<id>uat</id>
		<build>
			<resources>
				<resource>
					<targetPath>${project.basedir}/target/conf/</targetPath>
					<directory>configure/public</directory>
				</resource>
				<resource>
					<targetPath>${project.basedir}/target/conf/</targetPath>
					<directory>configure/uat</directory>
					<excludes>
						<exclude>assembly.xml</exclude>
					</excludes>
				</resource>
			</resources>
		</build>
	</profile>
	<profile>
		<id>release</id>
		<build>
			<resources>
				<resource>
					<targetPath>${project.basedir}/target/conf/</targetPath>
					<directory>configure/public</directory>
				</resource>
				<resource>
					<targetPath>${project.basedir}/target/conf/</targetPath>
					<directory>configure/release</directory>
					<excludes>
						<exclude>assembly.xml</exclude>
					</excludes>
				</resource>
			</resources>
		</build>
	</profile>
</profiles>

assembly.xml 文件内容

tar.gz true bin bin 0755 keep webRoot bin/webRoot lib lib target/conf conf lib runtime

----------------------------------------------sh 脚本文件-----------------------------------------------------------------
bin/bootstrap.sh

#!/bin/sh

#check JAVA_HOME & java
#noJavaHome=false
#if [ -z “$JAVA_HOME” ] ; then

noJavaHome=true

#fi
#if [ ! -e “$JAVA_HOME/bin/java” ] ; then

noJavaHome=true

#fi
#if $noJavaHome ; then

echo

echo “Error: JAVA_HOME environment variable is not set.”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值