maven项目打包成可执行的jar
编写功能类:
package com.hpay.FileToZkUtil; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.concurrent.CountDownLatch; import org.apache.log4j.Logger;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.Watcher.Event.KeeperState;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.Stat; public class FileToZkUtil
{
private static final Logger logger = Logger.getLogger(FileToZkUtil.class); private static CountDownLatch connectedSemaphore = new CountDownLatch( 1 ); /**
*
* @param zkUrl zookeeper地址
* @param zkNode zookeeper节点
* @param filePath 文件路径
*/
@SuppressWarnings("unused")
public static void setFileToZkNode(String zkUrl, String zkNode, String filePath) { Watcher watch = new Watcher() {
public void process(WatchedEvent event) {
// System.out.println(event.getPath());
logger.info(">>>>> " + event.getPath() +">>>>>" + event.getType());
if (KeeperState.SyncConnected == event.getState()) {
connectedSemaphore.countDown();
}
}
};
ZooKeeper zk;
try {
//读取目标文件
byte[] data = readFile(filePath);
if (data != null) {
zk = new ZooKeeper(zkUrl, 3000, watch);
connectedSemaphore.await();
logger.info("zk连接创建成功:" + zkUrl);
//测试是否存在目标节点
Stat stat = zk.exists(zkNode, true);
logger.info("目标节点状态:" + stat);
//设置目标节点数据
zk.setData(zkNode, data, -1);
} else {
logger.info("获取" + filePath + "数据失败!");
} } catch (IOException e) {
e.printStackTrace();
logger.error("绑定zk节点出错:" + e.getMessage());
} catch (KeeperException e) {
e.printStackTrace();
logger.error("绑定zk节点出错:" + e.getMessage());
} catch (InterruptedException e) {
e.printStackTrace();
logger.error("绑定zk节点出错:" + e.getMessage());
}
} //读取文件
private static byte[] readFile(String filePath) {
File file = new File(filePath);
byte b[] = null;
if (file.isFile() && file.exists()) {
FileInputStream fis;
try {
fis = new FileInputStream(file);
int count = fis.available();
int readCount = 0;
b = new byte[count];
while (readCount < count) {
readCount += fis.read(b, readCount, count - readCount);
}
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
logger.error("读取文件出错:" + e.getMessage());
} catch (IOException e) {
e.printStackTrace();
logger.error("读取文件出错:" + e.getMessage());
}
}
return b;
}
}
编写main方法类:
public class MianClass {
public static void main(String[] args) {
// FileToZkUtil.setFileToZkNode("10.48.172.101:2161", "/test", "E:/test/zookeeper/t.txt");
FileToZkUtil.setFileToZkNode(args[0], args[1], args[2]);
}
}
在pom文件中配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.hpay.FileToZkUtil.MianClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
打包方式:
1.进入到项目所在目录,例如:
cd D:\workspace\riskCompensate\FileToZkUtil
2.运行命令
mvn assembly:assembly
3.在项目的target目录中可以看到如下文件

说明打包完成.
运行方式:
1.在cmd命令窗口进入target目录
cd cd D:\workspace\riskCompensate\FileToZkUtil\target
2.输入
java -jar FileToZkUtil-0.0.1-SNAPSHOT-jar-with-dependencies.jar 10.48.172.101:2161 /test E:/test/zookeeper/t.txt
即可执行该jar,其中 10.48.172.101:2161 /test E:/test/zookeeper/t.txt 为main方法的三个参数
需要注意的事项:
1.如果项目中依赖了其他maven项目,需要先将依赖的项目编译.
选中依赖的项目执行 maven install
2.需要将依赖的jar,如该项目中的zookeeper的pom文件中scope属性修改为compile

maven项目打包成可执行的jar的更多相关文章
- 如何将maven项目打包成可执行的jar
如何将maven项目打包成可执行的jar 分类: maven2010-12-17 10:18 10411人阅读 评论(2) 收藏 举报 jarmavenassemblyjava 方法一:将项目及所依赖 ...
- Maven项目打包成可执行Jar文件
在使用Maven完成项目以后,如果需要打包成可执行的Jar文件,我们通过eclipse的导出很麻烦,还得指定入口文件的位置,还得说明依赖的jar包,既然都使用Maven了,很重要的一个目的就是让这些繁 ...
- 将Maven项目打包成可执行jar文件(引用第三方jar)
方法一. mvn assembly 或 mvn package (一个jar包) 把依赖包和自己项目的文件打包如同一个jar包(这种方式对spring的项目不支持) <build> ...
- 构建Springboot项目、实现简单的输出功能、将项目打包成可以执行的JAR包(详细图解过程)
1.构建SpringBoot项目 大致流程 1.新建工程 2.选择环境配置.jdk版本 3.选择 依赖(可省略.后续要手动在pom文件写) 4.项目名 1.1 图解建立过程 1.2 项目结构 友情提示 ...
- 在IDEA中如何将Spring boot项目打包成可执行的jar包并发布到linux服务
这两年微服务很流行,这里简单介绍一下如何将自己使用idea写的微服务打包成一个可执行的jar包,并发布到linux服务器的步骤.因为spring boot有内置的tomcat所以一般使用内置的tomc ...
- 将Maven项目打包成可执行 jar文件(引用第三方jar)
使用maven assembly插件完成打包 修改pom: <build> <pluginManagement> <plugins> <!--设置jdk版本, ...
- hadoop-maven项目打包成可执行的jar
环境: cdh5.1.0 jdk1.7 <build> <plugins> <!--指定JDK为1.7 --> <plugin> <groupId ...
- 通过idea 打包 spring maven项目打包为可执行jar包
用assembly打包一直报错: shangyanshuodeMacBook-Pro:target shangyanshuo$ java -jar jobscrawler-1.0-SNAPSHOT-j ...
- 怎么将maven项目打包成war包
问题:我在eclipse上能运行,然后我想将这个maven项目打包成war然后放到另外一台机子上(其实是手动放在tomcat的webapp目录中),提供外部访问.现在问题是,一直maven项目打包一直 ...
随机推荐
- IO(三)----序列流
SequenceInputStream 表示其他输入流的逻辑串联.它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的 ...
- java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.isAsyncStarted()Z 的解决
jetty 9 嵌入式开发时,启动正常,但是页面一浏览就报错如下: java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest ...
- 豪斯课堂K先生全套教程淘宝设计美工第一期+第四期教程(无水印)
第一期课程包括 <配色如此简单> <配色的流程><对称之美>第二期课程包括 <字体的气质及组合><平衡及构图形式><信息的筛选与图片的 ...
- 攻克Spring
http://www.cnblogs.com/dream-to-pku/p/5655247.html
- 【腾讯GAD暑期训练营游戏程序班】游戏中的设计模式作业说明文档
- 在Windows Server 2012 R2上安装SharePoint 2013 with SP1失败,提示没有.net4.5的解决办法
现在的Server用Windows Server 2012 R2的越来越多了,在部署带Sp1的SharePoint2013的时候,走完预安装工具后,点击setup提示缺少.net4.5. 其实Wind ...
- javascript 中断函数的使用 setInterval();
<script type="text/javascript"> var i=1; var IR1 = setInterval("myMethod()" ...
- 理解web缓存 浏览器缓存
为了: 控制缓存 遇到的现象: 1.开发的时候,浏览器会缓存你的文件,使得你的改动是无效的! 开发过程中:我们是不希望有缓存的. 但正是发布以后,我们是希望页面能够在浏览器缓存,这样用户的体验就会提高 ...
- jenkins持续集成源码管理选项为None,构建失败找不到git.exe解决办法
我的jenkins版本为Jenkins ver. 2.19.1 1.源码管理选项只有None的解决办法: 在插件管理中心,搜索对应的源码管理插件这里以git为例,搜索git plugin点击右下角的安 ...
- DevExpress.chartContro控件保存图片和打印图片
private void pictureBox1_Click(object sender, EventArgs e) { ////实例化打印对象 PrintDocument print = new P ...