Maven项目总结(进阶篇)

2018-01-25
这个笔记是在实验室工作了8个月,经历了 初学maven---安卓项目中有maven----pc应用检测自己写打包------看了一遍网课----最新的安卓项目搭框架 之后的经验总结
maven相对而言还是比较简单的,但如果对这一套流程不熟悉的话,很容易造成很多不必要的麻烦,甚至会造成一种“我不用maven反而更简单”的误解(都是我之前懵懵懂懂自学而产生的血与泪),因此对里面的步骤熟悉之后再使用会少走很多弯路。

1、安装(略)
2、创建maven工程(略)

各个指令( 非常重要!
3、eclipse:eclipse :将pom文件中的依赖下载下来。
4、clean: 就是将target目录下的所有缓存全部删掉(每次打jar包之前都必须要做的,不然可能打的jar包里面并未更新代码!)
5、package和install:都是打成jar包,区别在于:package是将jar包打到target目录下,install是将jar包发到本地仓库中。
6、deploy:是将jar包发送到私有仓库中
私有仓库与本地仓库的区别:本地仓库就是你自己电脑上某个叫做repository文件夹下的目录,而私有仓库是用nexus建立的仓库,可共享。
7、assembly:assembly: (需要写一个assembly.xml到项目中)
首先我们要知道的是,我们在pom文件中写的jar包,在eclipse:eclipse之后,只会下载本地仓库,并且映射到项目中。
因此如果你将这个项目直接压缩成zip包,给别的机器解压引入项目后,会发现所有依赖的jar包都消失了。
so,此时需要assembly指令,它可以把所有的依赖全部压缩到一个zip包中。
8、assembly.xml详解:
<formats>
<format>zip</format> : 这一块表示打成zip包
</formats>
<fileSet>
<directory>target</directory>
<outputDirectory></outputDirectory> :这一块表示把target目录下的所有jar包(其实也就是我们install之后自己的jar包)
<includes>
<include>*.jar</include>
</includes>
</fileSet>
<fileSet>
<directory>src/main/scripts</directory> : 这一块表示把src/main/scripts 下的所有东西全部变成bin下,并放到压缩包中
<outputDirectory>bin</outputDirectory>
</fileSet>

<dependencySets>
<dependencySet>
<useProjectArtifact>true</useProjectArtifact>
<outputDirectory>lib</outputDirectory> :这一块表示把所有依赖全部添加到压缩包中(解决第7点的问题)
<scope>runtime</scope>
<unpack>false</unpack>
</dependencySet>
</dependencySets>


9、使用流程:
先使用clean清理缓存 --》 install将本项目打成jar包 --》(若有需要)deploy到仓库 --》assembly将其他项目一并引入并打成zip包。

10、附pom文件的<plugins>插件部分: 这里有两个maven编译器插件,不太明白为什么需要两个,但不敢删上面那个
因为是进阶篇,所以只六<build>标签下的部分
首先,是maven的编译器部分,代码如下:这一部分没什么好说的,
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
接着,是assembly插件部分:这里指明assembly.xml所在目录在哪
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
</plugin>
然后是启动部分:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<excludes>
<exclude>*.thrift</exclude>
<exclude>*.properties</exclude>
<exclude>*.xml</exclude>
<exclude>*.sql</exclude>
<exclude>*.sh</exclude>
<exclude>*.bat</exclude>
</excludes>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.softsec.tase.node.Startup</mainClass>
</manifest>
<manifestEntries>
<Class-Path>conf/</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>

猜你喜欢

转载自blog.csdn.net/bintoyu/article/details/79396774