maven工程将main函数打成jar包

现将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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>1</groupId>
	<artifactId>HistoryDataArrange</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>HistoryDataArrange</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.winksi</groupId>
			<artifactId>winksi-web</artifactId>
			<version>0.0.1</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.27</version>
		</dependency>
				<!-- DBCP -->
		<dependency>
			<groupId>commons-dbcp</groupId>
			<artifactId>commons-dbcp</artifactId>
			<version>1.4</version>
		</dependency>
	</dependencies>
		<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.3.2</version>
				<configuration>
					<source>1.6</source>
					<target>1.6</target>
					<encoding>UTF-8</encoding>

				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
					<archive>
						<manifest>
							<addClasspath>true</addClasspath>
							<!-- <mainClass>com.winksi.enterprise.job.EnterpriseMerge_v2</mainClass> -->
							<!--<mainClass>com.winksi.enterprise.merge.Enterprise_excel</mainClass> -->
							 <mainClass>com.winksi.service.LoadDataService</mainClass>
							<!-- <mainClass>com.winksi.enterprise.job.ImgDown</mainClass> -->
						</manifest>
					</archive>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<id>copy</id>
						<phase>install</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<outputDirectory>lib</outputDirectory>
							<!-- 拷贝所以依赖存放位置 -->
						</configuration>
					</execution>
				</executions>
			</plugin>
			<!-- 将生成的jar移动到主目录下面 -->
			<plugin>
				<artifactId>maven-antrun-plugin</artifactId>
				<executions>
					<execution>
						<id>copy-lib-src-webapps</id>
						<phase>package</phase>
						<configuration>
							<tasks>
								<copy todir="${basedir}/lib">
									<fileset dir="target">
										<include name="*.jar" />
									</fileset>
								</copy>
							</tasks>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-dependency-plugin</artifactId>
										<versionRange>[1.0.0,)</versionRange>
										<goals>
											<goal>copy-dependencies</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
</project>

主要用到的是build标签内的代码,其他的都是引入Jar包用的。

把mainClass标签内的代码换成你主函数所在的位置。

然后在项目上右键MAVEN IMSTALL。即可生成该项目的JAR包

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

写shell脚本来执行该Main函数

#! /bin/sh
set -x
JAVA_HOME=/home/zqlx/software/jdk1.7.0_07
CLASSPATH=.:/home/zqlx/software/jdk1.7.0_07/lib/dt.jar:/home/zqlx/software/jdk1.7.0_07/lib/tools.jar
cp=${CLASSPATH}
for i in `ls -1 ../lib/*.jar`; do
       cp=${cp}:./$i
done

deal_date=${1:-`date --date '1 days ago' +%Y-%m-%d`}

nohup $JAVA_HOME/bin/java -cp ${cp} -Xms256m -Xmx2048m com.winksi.dotstat.DotStatPvUv ${deal_date} &

-------------------------结束---------------------------------------

nohup.out为终端输出内容

deal_date为向main函数传递的参数

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

执行jar包指定的main函数命令:JAVA -jar ***.jar

如果想执行另一个类的main函数(非pom.xml指定的main)命令:java -classpath dotstat_v2-0.0.1-SNAPSHOT.jar com.winksi.dotstat.TermActiveStat

                      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值