现将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