0%

此插件打包为jar,并对MANIFEST.MF作修改:mvn package

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<!-- 为依赖包添加路径, 这些路径会写在MANIFEST文件的Class-Path下 -->
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<!-- jar启动入口类 -->
<mainClass>com.lwt.test.Test</mainClass>
</manifest>
<manifestEntries>
<!-- 在MANIFEST.MF下添加项,其实所有项都可以在此添加而不用上面的manifest标签 -->
<!-- conf/会被添加到Class-Path -->
<Class-Path>conf/</Class-Path>
</manifestEntries>
</archive>
<includes>
<!-- 打jar包时,只打包class文件。若想打包配置文件,注释掉 -->
<include>**/*.class</include>
</includes>
</configuration>
</plugin>
阅读全文 »

编写pom文件

我们通过pom.xml文件来声明需要下载的jar包。

pom.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.feb13th</groupId>
<artifactId>download-jar</artifactId>
<version>1.0</version>
<dependencies>

<!-- 需要下载什么jar包 添加相应依赖 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.58</version>
</dependency>

</dependencies>
</project>
阅读全文 »

.mvn 文件夹

.mvn文件夹位于当前项目的根文件夹下面。该文件夹内可以包含extensions.xmlmaven.configjvm.config

extensions.xml

extension.xml用于定义maven项目启动所需的额外库。

如果不适用这个文件的话,就需要将我们需要的jar包放在maven安装路径的/lib/ext目录下,或者使用mvn -Dmaven.ext.class.path=extension.jar的方式,总之这样很不方便。

文件格式如下:

1
2
3
4
5
6
7
8
<extensions xmlns="http://maven.apache.org/EXTENSIONS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/EXTENSIONS/1.0.0 http://maven.apache.org/xsd/core-extensions-1.0.0.xsd">
<extension>
<groupId/>
<artifactId/>
<version/>
</extension>
</extensions>
阅读全文 »

创建 Maven 项目

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Maven 目录结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
my-app
|-- pom.xml
`-- src
|-- main
| `-- java
| `-- com
| `-- mycompany
| `-- app
| `-- App.java
`-- test
`-- java
`-- com
`-- mycompany
`-- app
`-- AppTest.java
阅读全文 »

在使用GitHub时,由于国内网络对GitHub不太友好,经常在进行clone项目时速度特别慢,这时候我们就需要通过设置代理的方式来加速git的下载速度。

git配置代理有两种方式,一种是全局代理,一种是针对指定地址进行代理。

全局代理会将所有的网络请求转发到代理服务器,对于一些不需要经过代理的仓库请求,可能会拖慢速度。而针对链接地址的代理方式就不存在这种缺陷。

设置代理之前,你需要一台代理服务器,并且本地代理客户端可以正常访问代理服务器。

首先确认代理服务器使用的网络代理方式,主流的有socks5http代理,记住正在使用的代理方式对应的端口,一下命令中需要使用。

阅读全文 »

在各操作系统下,文本文件所使用的换行符是不一样的。UNIX/Linux 使用的是 0x0A(LF),早期的 Mac OS 使用的是0x0D(CR),后来的 OS X 在更换内核后与 UNIX 保持一致了。但 DOS/Windows 一直使用 0x0D0A(CRLF)作为换行符。Git提供了一个“换行符自动转换”功能。这个功能默认处于“自动模式”,当你在签出文件时,它试图将 UNIX 换行符(LF)替换为 Windows 的换行符(CRLF);当你在提交文件时,它又试图将 CRLF 替换为 LF。Git 的“换行符自动转换”功能听起来似乎很智能、很贴心,因为它试图一方面保持仓库内文件的一致性(UNIX 风格),一方面又保证本地文件的兼容性(Windows 风格)。但遗憾的是,这个功能是有 bug 的,而且在短期内都不太可能会修正。

阅读全文 »

git命令乱码

通过git status查询修改的文件,如果文件名中包含中文, 则会显示乱码, 如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
git status
位于分支 master
您的分支领先 'origin/master' 共 2 个提交。
(使用 "git push" 来发布您的本地提交)

尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git restore <文件>..." 丢弃工作区的改动)
修改: linux/shell.md

未跟踪的文件:
(使用 "git add <文件>..." 以包含要提交的内容)
"\345\244\247\346\225\260\346\215\256/hadoop/\345\207\206\345\244\207\350\231\232\346\213\237\346\234\272.md"

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
阅读全文 »

现在有两种方式, .gitignore或者.git/info/exclude,这两种方式都表示指定的文件不不会被git进行管理.

但现在有一个需求, 我想忽略某些已经被git管理的文件, 例如, 我有一些配置文件, 我需要git帮我管理着他们, 但是这些配置文件每个开发人员需要配置的项目不一样, 这时我想修改这个文件,但是又不想让git提醒我提交它.

阅读全文 »