使用 gradle 整合 vuejs 項目與 java 項目


使用 gradle 整合 vuejs 項目與 java 項目

前后端分離是個大趨勢了,用 vuejs 去做前端比起 jsp 方式或其它模板方式做起來方便多了,這種隔離更加徹底。把后台做成一個純 API 方式,只管理業務邏輯和數據,前端管 UI ,使用數據驅動的 mvvm vuejs 。

前端的測試也非常方便,在后台還沒有完成的情況下,使用 vue-test-suit 做測試,后台和前端、測試職責更加清楚,減少代碼互相打架的情況。

編譯時整合 vuejs 和 java 的后端也很簡單,這里介紹一下通過 gradle 進行整合的過程。

創建 vuejs 項目

安裝 vue-cli

npm install vue-cli -g

建立代碼框架

vue init webpack proj

引入 gradle node 插件

要給 vuejs 項目加個 gradle 的配置,用 gradle 調用 node 編譯項目

// build.gradle
plugins {
    id "com.github.node-gradle.node" version "1.3.0"
}

//調用npm run build命令的Gradle任務
task npmBuild(type: NpmTask, dependsOn: npmInstall) {
    inputs.files(fileTree('config'))
    inputs.files(fileTree('src'))
    inputs.files(fileTree('static'))
    inputs.files(fileTree('build'))
    inputs.file('package.json')
    inputs.file('package-lock.json')
    inputs.file('index.html')

    outputs.files(fileTree('dist'))

    group = 'node'
    args = ['run', 'build']
}

//調用npm run dev
task npmDev(type: NpmTask, dependsOn: npmInstall) {
    group = 'node'
    args = ['run', 'dev']
}

加了 gradle 配置后,就可以在父項目上引入這個 vuejs 項目

// settings.gradle
include(':proj')
project(':proj').projectDir = new File(settingsDir, '../proj')

注意要修改項目名和路徑

后台項目引入 vuejs 的編譯結果

在 java 后台項目,引入 vuejs 的編譯任務和結果

// build.gradle
assemble.dependsOn project(':proj').getTasksByName('npmBuild', false)
processResources {
    from(project(':proj').file('dist').path) {
        into 'static'
    }
}

這里把 vuejs 項目的項目的編譯結果(dist 目錄)直接在 processRessource 降低加入到 static 目錄,在 spring boot 里面能直接識別出來,如果是自己需要修改目標目錄位置則要做相應的修改(如放到 resource 或 asset 目錄)

OK,現在在 java 后台項目上運行 assemble 任務時,就能調用到 vuejs 項目的 npmBuild 任務,並把生成的 dist 目錄加到 java 后台項目的編譯結果中,做 war 或 bootJar 生成的結果包含了前端生成的結果,可以直接部署了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM