0%

开发过程中经常需要用到数据的导入导出功能,之前用的是POI,这次使用JXL,JXL相对于POI来说要轻量简洁许多,在数据量不大的情况下还是非常实用的。这里做一下使用JXL的学习记录。首先需要导入相应的jar包,pom.xml中添加如下内容即可

1
2
3
4
5
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.12</version>
</dependency>

看图说话:

0、数据实体类:

1、导出代码:

阅读全文 »

项目中经常需要用到自己的jar包或者是中心库没有的jar包;常用的方法一种是将jar包安装到本地仓库,然后在项目的pom.xml文件中引用,还有一种是将jar包放在项目中,比如WEB_INF/lib文件夹下.

在这里记录一下两种方式分别是怎么操作的

1、将jar包安装到本地仓库
很多开发工具都集成有将jar包安装到本地仓库的功能,比如eclipse,这里说下使用Maven命令安装jar包的方式;
在命令行使用命令:mvn install,注意命令不能换行,中间参数用空格分隔,格式如下:

1
2
3
4
5
6
mvn install:install-file
-DgroupId=<groupId> : 设置项目代码的包名(比如org.apache)
-DartifactId=<artifactId> : 设置项目名或模块名(比如shiro-core)
-Dversion=1.0.0 : 版本号(比如1.2.2)
-Dpackaging=jar : 文件类型(jar包)
-Dfile=<myfile.jar> : 需要安装的文件路径(比如/root/shiro-core-1.2.2.jar)

# 安装示例:

1
mvn install:install-file -DgroupId=org.apache -DartifactId=shiro-core -Dversion=1.2.2 -Dpackaging=jar -Dfile=/root/shiro-core-1.2.2.jar

# 这样执行安装完成之后,在Maven本地仓库的对应路径中就有了相应的jar包,可以在本地项目中直接引用了
# 比如以上命令执行后的安装位置就是:
repository/org/apache/shiro/shiro-core/1.2.2/shiro-core-1.2.2.jar

2、引用放在项目中的jar包
通常本地jar包在项目中的位置是:src/main/webapp/WEB-INF/lib,这里就以这个做示例
比如这里有一个jar文件:src/main/webapp/WEB-INF/lib/fastdfs_client_v1.20.jar
我们需要在项目的pom.xml文件中使用<dependency>标签来引入jar包
# 这里的 <groupId><artifactId><version>都是可以随便写的,但是不能没有,比如引用上面地址的jar包:

1
2
3
4
5
6
7
<dependency>  
<groupId>common</groupId>
<artifactId>fastdfs_client</artifactId>
<version>1.20</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/fastdfs_client_v1.20.jar</systemPath>
</dependency>

# <scope>必须填写system<systemPath>写上jar包相对于项目的地址就行了;

点击查看 [ Linux 源码安装 PHP ] [ Linux 快速搭建 Apache + PHP 环境 ]

所有操作在默认的 /root 目录进行,且当前环境已经安装gcc/gcc-c++,没有安装gcc的请执行yum安装
yum install -y gcc-c++

1、下载Apache源码,我这里用的是官网当前最新版本2.4.29,选择的是tar.gz包
wget http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.29.tar.gz

httpd-2.4.29.tar.gz (8.24 MB, 下载次数: 6)

2、解压并配置Apache
tar -zxvf httpd-2.4.29.tar.gz
cd httpd-2.4.29
# 后面的参数是配置Apache安装目录 –prefix=/usr/local/httpd
./configure –prefix=/usr/local/httpd
# 到这里会报错,提示 configure: error: APR not found. 需要 先安装APR依赖包

3、下载APR源码编译安装
# 在这提一下,APR我没有用官网最新的1.6.3版本,会出现一个错误,可能因本人技术有限,暂未解决,所以退回到1.5版本
# 这里提供的是1.5.2版本下载

apr-1.5.2.tar.gz (1007.43 KB, 下载次数: 2)

# 解压
tar -zxvf apr-1.5.2.tar.gz
# 配置 编译 安装

1
2
3
4
cd apr-1.5.2 
./configure –prefix=/usr/local/apr
make
make install
阅读全文 »

我这里选择的是最为快捷的yum安装方式,源码编译安装方式另行开贴记录

点击查看 [ Linux 源码安装 Apache ] [ Linux 源码安装 PHP ]

1、安装Apache
yum install httpd -y
2、安装PHP
yum install php -y
3、修改Apache配置文件添加php支持
vim /etc/httpd/conf/httpd.conf
#加载libphp5.so模块
LoadModule php5_module modules/libphp5.so

#在下面代码中加入index.php

1
2
3
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>

#添加完如下:

1
2
3
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>

#在以下标签中加入php支持

阅读全文 »

在Linux删除文件这种事经常会做,rm -rf,但是有时候手滑一下rm -rf * 删除不该删除的文件就麻烦,万一再多抖一下 rm -rf /* 想想就怕。为了防止手滑,需要禁用或者更改rm命令,修改方法各种各样,这里我选了一个我比较喜欢的方案,在这里记录一下。

实际就是重新定义 rm ,每次rm实际上执行的是 mv 命令,会将文件移动到回收站目录 ~/.trash

别名按照个人习惯自定义即可


保存完毕之后需要 source .bashrc

使用方法:
rm –删除文件
cattrash –查看回收站文件
unrm –恢复文件
cleartrash –清空回收站

需要添加到 .bashrc 的命令如下,贴到 .bashrc 最后面即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 初始化回收站目录
mkdir -p ~/.trash
# 设置别名
alias rm=trash
alias cattrash='ls ~/.trash'
alias unrm=undelfile
alias cleartrash=cleartrash
# 从回收站恢复指定文件到当前目录
undelfile()
{
mv -i ~/.trash/$@ ./
}
# 移动文件到回收站
trash()
{
mv $@ ~/.trash/
}
# 清空回收站
cleartrash()
{
read -p "清空回收站? [y/n]" confirm
[ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/*
}

前些时候在Jenkins中运行shell脚本做自动化部署时,命令中Tomcat启动命令start.sh执行后显示 Tomcat started. 但实际Tomcat没有启动起来,后来找到原因把问题解决了,继续在这里做一下记录。

解决办法:在脚本执行之前添加环境变量:export BUILD_ID=dontkill
后面dontkill的值可以随便设置。

再次构建就不会再杀掉衍生进程了。

原因:百度查了下,是因为Jenkins在之执行构建时会设置一些环境变量,而这些环境变量也会被构建所衍生出来的进程继承。

在构建任务结束时,Jenkins会检查环境变量,如果查到有之前设置的环境变量的进程就会kill掉,我们可以在构建时改变BUILD_ID的值,从而让衍生进程在构建结束时不会被kill掉。

Nginx默认是不允许列出整个目录的。如需此功能,打开nginx.conf文件或你要启用目录浏览虚拟主机的配置文件,在serverlocation 段里添加上autoindex on;来启用目录流量,下面会分情况进行说明。

另外Nginx的目录浏览有两个比较有用的参数,可以根据自己的需求添加:

autoindex_exact_size off;
默认为on,显示出文件的确切大小,单位是bytes
改为off后,显示出文件的大概大小,单位是KB或者MB或者GB

autoindex_localtime on;
默认为off,显示的文件时间为GMT时间。
改为on后,显示的文件时间为文件的服务器时间

1、整个虚拟主机开启目录浏览
server段添加

1
2
3
4
location / {
autoindex on;
autoindex_localtime on; #之类的参数写这里
}

2、单独目录开启目录浏览
2.1:直接二级目录开启目录浏览

1
2
3
location /down/ {
autoindex on;
}

2.2:虚拟目录开启目录浏览

1
2
3
4
location /down/ {
alias /home/wwwroot/lnmp/test/;
autoindex on;
}

详细参照:http://nginx.org/en/docs/http/ngx_http_autoindex_module.html
需要注意rootalias的区别:
alias 设置的目录是准确的,可以理解为linuxln命令创建软连接,location就是软连接的名字。

阅读全文 »

最近在捣鼓服务器,准备做弄个论坛玩玩,之前域名在备案,所以一切都是用IP发布和访问的。
今天域名备案审核通过了,然后就把域名解析分发到论坛上。

解决了前置的各种修改IP为域名的问题后,发现论坛首页和后台都能正常访问,但是首页的版块,还有帖子链接都打不开了。
查找原因发现是所有的链接都自动带上端口号了,如下图(我80端口Nginx使用,Apache用的是9999端口)

之后就百度找原因呗,一搜发现还是有一部分有出现过这样的问题,这里不得不说下discuz官方论坛版主等管理人员不活跃,好多提问帖都是网友解答或者楼主自行解决的。

阅读全文 »

公司在开发过程中经常需要把代码发布到内网服务器,所以用Jenkins做一键构建。然后在构建我们的一个Maven项目时遇到了一个错误:

1
2
3
4
5
6
7
8
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project lano-cloud-zjxxw: Compilation failure -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR]
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

不明白什么意思,就各种搜索,网上有一些这类的错误贴,研究了下最后把问题解决了,但是说的太笼统,我这里自己做一下记录,当做是学习笔记吧。

这个错误的意思是Maven在构建时,查找JDK环境遇到了问题。我原来pom.xml中关于maven-compiler-plugin是这样配置的:

1
2
3
4
5
6
7
8
9
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>

这里需要给出JDK的具体地址:

1
2
3
4
5
6
7
8
9
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<fork>true</fork>
<executable>/usr/local/jdk8/bin/javac</executable>
</configuration>
</plugin>

保存之后,在服务器本地和Jenkins上,都能构建成功。