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项目打包一直 ...
随机推荐
- [No000089]String的(补空位)左对齐,(补空位)右对齐
using System; namespace Chinese中文排序Sort { internal class Program { /// <summary> /// 取子字符串 /// ...
- MVC之前的那点事儿系列(10):MVC为什么不再需要注册通配符(*.*)了?
文章内容 很多教程里都提到了,在部署MVC程序的时候要配置通配符映射(或者是*.mvc)到aspnet_ISPAI.dll上,在.NET4.0之前确实应该这么多,但是.NET4.0之后已经不要再费事了 ...
- bzoj 1606: [Usaco2008 Dec]Hay For Sale 购买干草
Description 约翰遭受了重大的损失:蟑螂吃掉了他所有的干草,留下一群饥饿的牛.他乘着容量为C(1≤C≤50000)个单位的马车,去顿因家买一些干草. 顿因有H(1≤H≤5000)包 ...
- TCP/IP、Http、Socket、XMPP-从入门到深入
TCP/IP.Http.Socket.XMPP-从入门到深入 终极iOS程序猿 2016-12-29 18:27 为了便于大家理解和记忆,我们先对这几个概念进行的介绍,然后分析他们的不同,再进行详细的 ...
- jQuery之Ajax--全局Ajax事件处理器
1.这些方法用于注册事件处理器,用来处理页面上的任何 Ajax 请求,当某些事件触发后,这些事件处理器被调用.如果jQuery.ajaxSteup()中的 global 属性被设置为 true (这也 ...
- [转]EL表达式和JSTL表达式实例
/* **Title:EL表达式和JSTL表达式实例 **Author:Insun **Blog:http://yxmhero1989.blog.163.com/ */ 为了方便写JSP,我们引入了E ...
- 用JS写了一个打字游戏,反正我是通不了关
今天想写个简单的游戏, 打字游戏好像都没写过, 那么就写打字游戏吧, gamePad包含了关卡的信息, 可以用来调整给个关卡字符下落的速度: getRandom函数会返回一个字符对象, 这个对象包含了 ...
- [webpack] webpack-dev-server介绍及配置
webpack-dev-server是webpack官方提供的一个小型Express服务器.使用它可以为webpack打包生成的资源文件提供web服务.webpack-dev-server官方文档 w ...
- Adapter的封装之路
原文:Adapter的封装之路 一.几种常见列表效果: 假如要用RecyclerView实现下面的几种效果,你会如何实现呢? 效果1:单布局效果 效果2:多布局效果 有多种Item布局 效果3 ...
- 使用css3 filter 实现移入背景变色效果
<!doctype html><html lang="en"><head> <meta charset="UTF-8" ...