2017-11-25 6 views
1

私はグラデーションの初心者です。バックエンドジャーナルにフロントエンド配布ビルドフォルダを含めるのは難しいです(私はSpring Bootを使い、フロントエンドはionicアプリケーションです)。 backend.gradleでは、バックエンドのビルドフォルダにfrontend-buildフォルダ(wwwと呼ばれる)を含めるjar-Taskを設定しました。 jarタスクは実行されますが、目的の成果物はバックエンド構築フォルダには存在しないため、最終的なjarファイルには存在しません。どんな助けでもうれしいでしょう。フロントエンドビルドのディストリビューションフォルダをGradle付きのJARに組み込みます

プロジェクト構造:

allprojects { 

    buildscript { 
     repositories { 
      mavenCentral() 
     } 
    } 

    apply plugin: 'idea' 

    repositories { 
     mavenCentral() 
    }  
} 

frontend.gradle

project 
build.gradle 
settings.gradle 
backend 
--> backend.gradle 
frontend 
--> frontend.gradle 

settings.gradle

include 'backend' 
include 'frontend' 

rootProject.children.each { 
    it.buildFileName = it.name + '.gradle' 
} 

build.gradle

plugins { 
    id "com.moowork.node" version "1.2.0" 
} 

task clean(dependsOn: 'npm_run_clean') { 
} 

task build(dependsOn: 'npm_run_build') { 
} 
あなたは瓶のタスクは、それ以外の場合は、ビルドタスクの前にjarファイルを実行するので、瓶に含めることは何もない可能性があり、フロントエンドのビルドタスクに依存することのGradle伝える必要があります

backend.gradle

buildscript { 
    ext { 
     springBootVersion = '1.5.8.RELEASE' 
    } 
    dependencies { 
     classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") 
    } 
} 

apply plugin: 'java' 
apply plugin: 'org.springframework.boot' 

group = 'ch.renewinkler' 
version = '0.0.1-SNAPSHOT' 
sourceCompatibility = 1.8 


jar { 
    from('frontend/www') { 
     into('public') 
    } 
} 

processResources.dependsOn(':frontend:build') 

dependencies { 
    compile('org.springframework.boot:spring-boot-starter-web') 
    testCompile('org.springframework.boot:spring-boot-starter-test') 
} 

答えて

0

。あなたの助けのために

jar { 
    dependsOn(':frontend:build') 

    into('public') { 
     from "${project(':frontend').projectDir}/www" 
    } 
} 
+0

ありがとう:

はそれではなく、絶対パスを使用するのではなく、自分の名前でプロジェクトを参照するためにも、より良い考えです –

関連する問題