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项目打包一直 ...
随机推荐
- [bzoj1597][usaco2008 mar]土地购买 (动态规划+斜率优化)
Description 农夫John准备扩大他的农场,他正在考虑N (1 <= N <= 50,000) 块长方形的土地. 每块土地的长宽满足(1 <= 宽 <= 1,000, ...
- StackExchange.Redis 使用-配置
Configurationredis有很多不同的方法来配置连接字符串 , StackExchange.Redis 提供了一个丰富的配置模型,当调用Connect 或者 ConnectAsync 时需要 ...
- 9个让人印象深刻的网站 JS 视觉效果
网页设计已经提升到一个整体新的水平,Flash 渐渐失去了地位,逐渐被 HTML/JavaScript/CSS 所超越,而且一样可以实现出 Flash 复杂的特效. 本文介绍 8 个让人印象深刻的网站 ...
- Web 开发中很实用的10个效果
在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多,但是一时半会又想不起来在哪,所以养成知识整理的习惯是很有必要的.这篇文章给大家推荐10个在 Web 开发中很有用的效果,记 ...
- Nhibernate Query By Criteria 条件查询
HQL运算符 QBC运算符 含义 = Restrictions.eq() 等于equal <> Restrictions.ne() 不等于not equal > Restrictio ...
- linux-磁盘空间(du-df)
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择. df可以查看一级文件夹大小.使用比例.档案系统及其挂入点,但对文件却无能为力. du可以查看文件及文件夹的大小. 简要介 ...
- 更新/替换系统 hosts,轻松访问国外站点
更新 hosts 下面介绍的操作均可能覆盖现有 hosts ,进行操作前请先确认是否需要备份. 推荐使用本项目的 Host Tools 来自动化 备份/配置 工作. 若更新 hosts 未立即生效,请 ...
- windows2003安装证书服务:csp配置不正确、您没有此密钥容器的写访问权限
1.填写CA名称后在生成密钥时提示:csp配置不正确或安装不完整. 原因:可能的原因为CS服务(Crysptographic Service)没有启动 . ps:该服务依赖RPC服务,但RP ...
- android开发之背景音乐与音效
android开发之背景音乐与音效 一:添加背景音乐(MediaPlayer) MediaPlayer class can be used to control playback of audio/v ...
- jquery生成元素注册事件无效,及事件委托的使用
在页面加载完成之后,我们在页面操作用js生成html代码到页面,动态的添加元素带页面上 但是,这里可能很多人就必须碰到的一个问题就出现了,当你之后动态添加了元素到页面上,发现这个元素的绑定事件无效,如 ...