luarocks 自定义包发布试用
luarocks 是一个方便的lua 包管理工具,可以帮助我们实现代码的复用以及分享
注册账户
我使用了gihtub 的账户,直接点击&&授权即可 
创建一个简单的luarocks 包项目
- 创建rockspec 文件
使用luarocks 工具
luarocks-5.1 write_rockspec --lua-version=5.1
- 修改rockspec 内容
主要是指定module、版本以及源码的相关信息
比如我的,注意source url 中git 协议的处理,注意使用git:// https:// 的有问题
package = "lua-rocks-app-project"
version = "1.0.0-2"
source = {
url = "git://github.com/rongfengliang/luarocks-packagedemo.git"
}
description = {
homepage = "https://github.com/rongfengliang/luarocks-packagedemo.git",
license = "unlicense"
}
dependencies = {
"lua ~> 5.1"
}
build = {
type = "builtin",
modules = {
["users.login"]="users/login.lua"
}
}
- 简单代码
就是一个简单的函数
users/login.lua
function init(name,password)
return name,password
end
return init;
- 创建upload apikey

上传包
luarocks upload lua-rocks-app-project-1.0.0-2.rockspec --api-key=${api-key}
调用自己编写的包
使用openresty,同时集成了docker 方便测试
- dockerfile
FROM openresty/openresty:alpine-fat
LABEL author="1141591465@qq.com"
RUN /usr/local/openresty/luajit/bin/luarocks install lua-rocks-app-project ## 按照包
- 调用代码
local userslogin = require("users.login")
local json = require("cjson")
function logininfo(name,pass)
local name,pass = userslogin(name,pass)
local loginresult= {
name = name,
pass = pass
}
ngx.say(json.encode(loginresult))
end
return logininfo
more_set_headers 'Content-Type application/json';
content_by_lua_block {
require("app/init")("dalong","admin");
}
- docker-compose 文件
version: "3"
services:
app:
build: ./
ports:
- "8080:80"
volumes:
- "./app/:/opt/app/"
- "./nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf"
- 效果

说明
代码很简单,只是为了方便测试使用而已,具体的代码可以参考github
参考资料
https://github.com/rongfengliang/luarocks-packagedemo
https://github.com/rongfengliang/openresty_luarocksmodule-demo
luarocks 自定义包发布试用的更多相关文章
- [Visual Studio] NuGet发布自定义包(Library Package)
源文章:dax.net http://www.cnblogs.com/daxnet/archive/2013/05/07/3064577.html 使用NuGet发布自己的类库包(Library Pa ...
- 自定义及发布一个webservice服务
自定义及发布一个webservice服务 - 声明 某个业务服务为webservice服务 通过@webservice 注解来声明 - 发布webservice服务 ...
- 实战教程:如何将自己的Python包发布到PyPI上
1. PyPi的用途 Python中我们经常会用到第三方的包,默认情况下,用到的第三方工具包基本都是从Pypi.org里面下载. 我们举个栗子: 如果你希望用Python实现一个金融量化分析工具,目前 ...
- 把包发布到npm官网
一.包 包就是多模块的集合,CommonJS的包规范给程序员提供了组织模块的标准,减少沟通成本. 规范: 所有的模块放在demo文件夹下(包名)的lib文件夹里面 在lib文件夹的同级目录下新建ind ...
- 关于iOS和android自定义包的名字
自定义包名的使用,android的包名和ios的包名都是你的自定义包名!如下以新浪微博SDK自定义包名示例:(官方没的,自己踩过坑,方便后来人吧) 相关技术文档:http://www.apicloud ...
- Axis2使war包发布为WebService
首先 吐槽下 Axis2的Eclipse插件.不好用,而且局限性大.并且添加包的过程...会及其痛苦.(懂的自然懂) 而且 发布的aar文件,不能解压缩重新打包再压缩...尝试过添加 jar包,但报错 ...
- Tomcat下使用war包发布项目
Tomcat下使用war包发布项目 转自<Tomcat下使用war包发布项目 >,地址:http://blog.csdn.net/wy818/article/details/7240294 ...
- 纯Python包发布setup脚本编写示例
如果你有多个模块需要发布,而它们又存在于多个包中,那么指定整个包比指定模块可能要容易地多.即使你的模块并不在一个包内,这种做法也行的通:你可以告诉Distutils从根包(root package)处 ...
- Python 调用自定义包
创建包 # mkdir -p /python/utils # touch /python/utils/__init__.py # vi /python/utils/Log.pyimport timed ...
随机推荐
- :命令模式:Command
#ifndef __COMMAND_H__ #define __COMMAND_H__ #include <vector> #include "Equipment.h" ...
- linux centos7 安装mono
1.看官方的命令: 另外一种是下载压缩包解压之后安装: https://apps.fedoraproject.org/packages/mono/ 三.安装Mono需要的GDI+兼容API的库Libg ...
- Spring MVC中注解: @ModelAttribute 与@RequestParam区别
相关链接 : https://blog.csdn.net/huang343/article/details/77491096
- poj1062(分区间迪杰斯特拉,内含测试数据,一直wa的同学可以进来看看)
昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 54946 Accepted: 16518 Descripti ...
- <Spark><Spark Streaming><作业分析><JobHistory>
Intro 这篇是对一个Spark (Streaming)作业的log进行分析.用来加深对Spark application运行过程,优化空间的各种理解. Here to Start 从我这个初学者写 ...
- 转--HC05-两个蓝牙模块间的通信
示例蓝牙: 蓝牙A地址:3014:10:271614 蓝牙B地址:2015:2:120758 //============================================= 步骤: 1 ...
- golang fmt占位符
golang fmt格式"占位符" golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf. 定义示例类型和变量 type Human stru ...
- WebService的一种简单应用方式入门
1.什么是WebService? WebService即Web服务,简单来讲,他就是一种跨编程语言和跨操作平台的远程调用技术. 2.Web服务: Web服务是基于HTTP和XML的技术:HTTP是互联 ...
- ubantu安装node、npm、cnpm、live-server
更新ubuntu软件源 sudo apt-get update sudo apt-get install -y python-software-properties software-properti ...
- Javascript中的闭包 O__O "…
一.闭包!? 闭包(closure)是Javascript语言的一个难点,对于初学者来说不容易理解,那我们先来看看闭包的含义. 百度百科与“官方”解释:所谓“闭包”,指的是一个拥有许多变量和绑定了这些 ...