几种项目构建工具的使用
1. Maven
maven 在 java web 开发中是一个非常强大的构建工具, 配合 maven 庞大的第三方仓库解救了无数程序员从 IDE 导入 jar 包这种极为原始的包依赖管理方式。
Maven 常用指令
usage: mvn [options] [<goal(s)>] [<phase(s)>]
非生命周期指令
清除目标目录中的生成结果
mvn clean
新建一个 JAVA 项目
mvn archetype:create -DgroupId=com.demo -DartifactId=App
生成 IDEA 项目文件
mvn idea:idea
生命周期指令
编译源码
mvn compile
编译测试代码
mvn test-compile
运行应用程序中的单元测试
mvn test
生成项目相关信息的网站
mvn site
依据项目生成 jar 文件
mvn package spring-boot:repackage
在本地 Repository 中安装 jar
mvn install
实际中使用
不 clean 但使得代码修改能正确打包的方法
mvn package -Djar.forceCreation
使用 clean 也可以达到同样效果
mvn clean package
实际中会跳过测试
mvn clean package -Dmaven.test.skip=true
maven 本地仓库有 jar 包,maven install 还是报错识别不到
去本地仓库对应jar的目录下看下,有一个 _remote.repositories 的文件 打开
***.pom>xxx= ***.jar>xxx=
xxx 是 maven 的 setting.xml 里配的 mirror 的 id,如果这个 xxx 和你目前使用的 setting 文件里的 mirror 不一样,那 maven install 时会不认它。 很简单 在这个文件后面追加两行
这个 yyy 就是你当前 setting 里的 mirror 的 id,告诉 maven,这个 jar 是你亲生的,不要不认了。
***.pom>yyy= ***.jar>yyy=
这个 yyy 就是你当前 setting 里的 mirror 的 id,告诉 maven,这个 jar 是你亲生的,不要不认了。
递归删除 _remote.repositories
find . -name "_remote.repositories" | xargs rm -f
2. Gradle
gradle 以 groovy 语言开发, 语法相对于 maven 更为简洁, 兼容 maven 和 ant, gradle 可以使用 maven 仓库, 推荐开发者使用 gradle 而不是 maven 来管理项目依赖和构建项目。
示例:一份 gradle 项目的 构建是这样的。
使用 JetBrain 的 IntelliJ IDEA
新建项目 -> Gradle -> Java, build.gradle 如下:
group 'waterlaw.top' version '1.0-SNAPSHOT' apply plugin: 'java' sourceCompatibility = 1.8 repositories { mavenLocal() mavenCentral() maven { url "https://oss.sonatype.org/content/repositories/snapshots" } } dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' compile group: 'edu.cmu.sphinx', name: 'sphinx4-core', version:'5prealpha-SNAPSHOT' compile group: 'edu.cmu.sphinx', name: 'sphinx4-data', version:'5prealpha-SNAPSHOT' }
其中 group 是组织/公司名称,version 为软件版本, sourceCompatibility 是 jdk 版本, repositories 是 maven 仓库地址, dependencies 是项目依赖, testCompile 是测试环境依赖, compile 是运行时环境依赖。
如果想打包项目为 jar 文件, 可以增加几个 task, clearPj 是清除项目, copyJar 是拷贝 jar 文件到指定目录, release 包含 build 和 copyJar 这两个 task.
apply plugin: 'application' mainClassName = '' // 包含主函数的 class 文件路径, 如 com.voice.Start jar { String someString = '' configurations.runtime.each {someString = someString + " lib/"+it.name print("======"+it.name) } manifest { attributes 'Main-Class': 'com.voice.Start' attributes 'Class-Path': someString } } task clearPj(type:Delete){ delete 'build','target' } task copyJar(type:Copy){ from configurations.runtime into('build/libs/lib') print("======copyJar") } task release(type: Copy,dependsOn: [build,copyJar]) { print("======release") } tasks.withType(JavaCompile) { options.encoding = "UTF-8" // 防止中文乱码 }
运行 gradle release 即可构建项目, 在 build/libs 下, 发现一个 jar 文件和 lib 文件夹, lib 文件包含项目依赖的 jar 文件。
可以运行 java -jar [jar 文件], 发布的时候只需发布 libs 目录即可。
3. Sbt
scala 语言的构建工具
4. Cmake
先给个教程地址, Cmake 入门
在 windows 环境下, 通过 Cmake 生成的项目需要 Microsoft Visual Studio 来编译。
CMake 主要是用来构建 C/C++ 项目
5. pip
使用
pip install requests==2.14.1
可以使用 requirements.txt 文件进行管理
pip install -r requirements.txt
将依赖导出到 requirements.txt 文件
pip freeze > requirements.txt
6. npm
npm install vue-cli
清空缓存
npm cache clean --force
发表评论
评论列表, 共 0 条评论