some knowledge of maven {maven实战}

时间:2023-03-10 06:46:22
some knowledge of maven {maven实战}

maven是跨平台的,不仅是一个构建工具,也是一个可以管理依赖的工具。
它最大化的消除了构件的重复,并且提供了*仓库,能帮我们自动下载构件。
---------------------------------------------------------------------
世界上任何一个构件都可以使用Maven坐标唯一标识。
groudId:定义当前Maven项目隶属的实际项目。
命名规则:组织名.实际项目名
artifactId:定义实际项目中一个Maven项目(模块)。
命名规则:实际项目名-模块名,方便搜索构件。
version:定义Maven项目当前所处的版本。
packaging:定义Maven项目的打包方式
classifier:用来帮助定义构件输出的一些附属构件。
---------------------------------------------------------------------
仓库
Maven选可以在某一个位置统一存储所用Maven项目共享的构件,这一个位置就是仓库。
仓库分为两类:本地仓库和远程仓库。Maven会根据坐标先寻找本地仓库,如果不存在泽去远程仓库查找。如

果两个仓库都没有,Maven就会报错。

特殊远程仓库之一:*仓库,是Maven核心自带的远程仓库。
特殊远程仓库之二:私服,为了节省带宽和时间,局域网内应架设一个私有的仓库服务器。用其代理所有外

部的远程仓库,内部项目还能部署到私服上供其他项目使用。

一个构件只有在本地仓库中之后,才能由其他Maven项目使用。
情况一:依赖Maven从远程仓库中下载到本地仓库中。
情况二:将本地项目的构件安装到Maven仓库中。

mvn clean install命令的作用就是将项目的构建输出文件安装到本地仓库中。

对于Maven来说,每一个用户只有一个本地仓库,但可以配置访问很多远程仓库。

对于私服来说,当Maven需要下载构建的时候,它从私服请求,如果私服上不存在该构件,
则从外部的远程仓库下载。另外也能缓存外部仓库无法下载的构件。
私服的一大作用是部署第三方构件,包括组织内部生成的构件以及一些无法从外部仓库直接获取的构件。

===================================================================

1、libapk
An apklib is simply an Android library project, compressed as a zip file with a .apklib

extension.
Note that the apklib will include content of the …/src/main/java source directory, the …/libs

native library directory and …/res resource directory.

+ AndroidGridViewCompatLib.apklib
+ src
+ res
+ AndroidManifest.xml
+ project.properties

2、调试安装apk时如果内存不足可能会发生
Installation error: INSTALL_FAILED_CONTAINER_ERROR

3、
自定义本地仓库目录位置
<setting>
<localRepository>D:\xx\xx</localRepository>
</setting>

4、快照版本
快照版本是不稳定版本。

5、快照版本
比如2.1-SHAPSHOT,Maven会自动为构件打上时间戳。
2.1-20091214.221414-13 命名。

6、
NDK全称:Native Development Kit。

1、NDK是一系列工具的集合。
NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。

2、NDK提供了一份稳定、功能有限的API头文件声明。
Google明确声明该API是稳定的,在后续所有版本中都稳定支持当前发布的API。从该版本的NDK中看出,这些API支持的功能非常有限,包含有:C标准库(libc)、标准数学库(libm)、压缩库(libz)、Log库(liblog)。