maven工程将main函数打成jar包

来源:互联网 发布:武汉聚友网络 编辑:程序博客网 时间:2024/05/16 15:15

现将POM.xml文件的代码粘贴如下:

[html] view plain copy
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  3.     <modelVersion>4.0.0</modelVersion>  
  4.     <groupId>1</groupId>  
  5.     <artifactId>HistoryDataArrange</artifactId>  
  6.     <version>0.0.1-SNAPSHOT</version>  
  7.     <packaging>jar</packaging>  
  8.   
  9.     <name>HistoryDataArrange</name>  
  10.     <url>http://maven.apache.org</url>  
  11.   
  12.     <properties>  
  13.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  14.     </properties>  
  15.   
  16.     <dependencies>  
  17.         <dependency>  
  18.             <groupId>junit</groupId>  
  19.             <artifactId>junit</artifactId>  
  20.             <version>3.8.1</version>  
  21.             <scope>test</scope>  
  22.         </dependency>  
  23.         <dependency>  
  24.             <groupId>com.winksi</groupId>  
  25.             <artifactId>winksi-web</artifactId>  
  26.             <version>0.0.1</version>  
  27.         </dependency>  
  28.         <dependency>  
  29.             <groupId>mysql</groupId>  
  30.             <artifactId>mysql-connector-java</artifactId>  
  31.             <version>5.1.27</version>  
  32.         </dependency>  
  33.                 <!-- DBCP -->  
  34.         <dependency>  
  35.             <groupId>commons-dbcp</groupId>  
  36.             <artifactId>commons-dbcp</artifactId>  
  37.             <version>1.4</version>  
  38.         </dependency>  
  39.     </dependencies>  
  40.         <build>  
  41.         <plugins>  
  42.             <plugin>  
  43.                 <groupId>org.apache.maven.plugins</groupId>  
  44.                 <artifactId>maven-compiler-plugin</artifactId>  
  45.                 <version>2.3.2</version>  
  46.                 <configuration>  
  47.                     <source>1.6</source>  
  48.                     <target>1.6</target>  
  49.                     <encoding>UTF-8</encoding>  
  50.   
  51.                 </configuration>  
  52.             </plugin>  
  53.             <plugin>  
  54.                 <groupId>org.apache.maven.plugins</groupId>  
  55.                 <artifactId>maven-jar-plugin</artifactId>  
  56.                 <configuration>  
  57.                     <archive>  
  58.                         <manifest>  
  59.                             <addClasspath>true</addClasspath>  
  60.                             <!-- <mainClass>com.winksi.enterprise.job.EnterpriseMerge_v2</mainClass> -->  
  61.                             <!--<mainClass>com.winksi.enterprise.merge.Enterprise_excel</mainClass> -->  
  62.                              <mainClass>com.winksi.service.LoadDataService</mainClass>  
  63.                             <!-- <mainClass>com.winksi.enterprise.job.ImgDown</mainClass> -->  
  64.                         </manifest>  
  65.                     </archive>  
  66.                 </configuration>  
  67.             </plugin>  
  68.   
  69.             <plugin>  
  70.                 <groupId>org.apache.maven.plugins</groupId>  
  71.                 <artifactId>maven-dependency-plugin</artifactId>  
  72.                 <executions>  
  73.                     <execution>  
  74.                         <id>copy</id>  
  75.                         <phase>install</phase>  
  76.                         <goals>  
  77.                             <goal>copy-dependencies</goal>  
  78.                         </goals>  
  79.                         <configuration>  
  80.                             <outputDirectory>lib</outputDirectory>  
  81.                             <!-- 拷贝所以依赖存放位置 -->  
  82.                         </configuration>  
  83.                     </execution>  
  84.                 </executions>  
  85.             </plugin>  
  86.             <!-- 将生成的jar移动到主目录下面 -->  
  87.             <plugin>  
  88.                 <artifactId>maven-antrun-plugin</artifactId>  
  89.                 <executions>  
  90.                     <execution>  
  91.                         <id>copy-lib-src-webapps</id>  
  92.                         <phase>package</phase>  
  93.                         <configuration>  
  94.                             <tasks>  
  95.                                 <copy todir="${basedir}/lib">  
  96.                                     <fileset dir="target">  
  97.                                         <include name="*.jar" />  
  98.                                     </fileset>  
  99.                                 </copy>  
  100.                             </tasks>  
  101.                         </configuration>  
  102.                         <goals>  
  103.                             <goal>run</goal>  
  104.                         </goals>  
  105.                     </execution>  
  106.                 </executions>  
  107.             </plugin>  
  108.         </plugins>  
  109.         <pluginManagement>  
  110.             <plugins>  
  111.                 <plugin>  
  112.                     <groupId>org.eclipse.m2e</groupId>  
  113.                     <artifactId>lifecycle-mapping</artifactId>  
  114.                     <version>1.0.0</version>  
  115.                     <configuration>  
  116.                         <lifecycleMappingMetadata>  
  117.                             <pluginExecutions>  
  118.                                 <pluginExecution>  
  119.                                     <pluginExecutionFilter>  
  120.                                         <groupId>org.apache.maven.plugins</groupId>  
  121.                                         <artifactId>maven-dependency-plugin</artifactId>  
  122.                                         <versionRange>[1.0.0,)</versionRange>  
  123.                                         <goals>  
  124.                                             <goal>copy-dependencies</goal>  
  125.                                         </goals>  
  126.                                     </pluginExecutionFilter>  
  127.                                     <action>  
  128.                                         <ignore />  
  129.                                     </action>  
  130.                                 </pluginExecution>  
  131.                             </pluginExecutions>  
  132.                         </lifecycleMappingMetadata>  
  133.                     </configuration>  
  134.                 </plugin>  
  135.             </plugins>  
  136.         </pluginManagement>  
  137.     </build>  
  138. </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

阅读全文
0 0
原创粉丝点击