几种项目构建工具的使用

1. Maven

maven 官网

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

Building Java Applications

gradle 仓库

gradle 以 groovy 语言开发, 语法相对于 maven 更为简洁, 兼容 maven 和 ant, gradle 可以使用 maven 仓库, 推荐开发者使用 gradle 而不是 maven 来管理项目依赖和构建项目。

示例:一份 gradle 项目的 构建是这样的。

使用 JetBrain 的 IntelliJ IDEA

gradle 下载使用教程

新建项目 -> 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 官网

先给个教程地址, 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 条评论