2016-08-29 13 views
3

デフォルトのbootRepackageを使用して生成されたSpring Boot Jarファイルに追加のルートフォルダを追加するクリーンな方法はありますか?私の場合、AWS beanstalk用の.ebextenionsフォルダが必要です。Gradleを使用してSpring Boot Jarに.ebextensionsを追加する際のきれいな方法

私はそれを解くことができると知っています。たとえば、bootRepackageの後に別のタスクを追加して、解凍し、再度パッケージ化し直してください。よりクリーンな方法がありますか?

おかげ

...(動作しない)私が試した2つの方法:私はまだ春ブーツは自分自身をEBSする展開に取り組んでいます

jar { 
    from('src/main/ebextensions') { 
     into('ebextensions') 
    } 
} 

bootRepackage { 
    from('src/main/ebextensions') { 
     into('ebextensions') 
    } 
} 

答えて

2

...

私は、フォルダは.ebextensions(先頭のドットに気付く)と呼ばれなければならないと思います。だからinto('ebextensions')の代わりにinto('./.ebextensions')と言うでしょう。 Grailsの3で

task zip(type: Zip, dependsOn: bootRepackage) { 
    from ('./.ebextensions') { 
     into '.ebextensions' 
    } 
    from (jar.outputs.files) { 
     into '.' 
    } 
    destinationDir project.buildDir 
} 
+0

戦争{ '.ebextensions' } に(」./.ebextensions')から { }こんにちは、私は私の春のブートプロジェクトのルートフォルダに私の.ebextensionsフォルダを持っている、と私は著作上記のコードをbuild.gradleに貼り付けましたが、私の.ebextensionsフォルダがjarファイルのルートフォルダに表示されません。私は何を取りこぼしたか?ありがとう – user1805458

2

が、私はのための.warを含む.zipファイルを作成するには、「GradleのクリーンDIST」を使用します。

また、あなたはあなたのJARとあなたの.ebextensionsフォルダを含むZIPファイルをアップロードしてみてくださいEB配布、およびProcfileを使用してSpringブートコマンドラインを記述します。 「.ebextensions」フォルダには、私のプロジェクトのベースディレクトリにあり、プロジェクト名とprojectVersionはbuild.gradleファイルに定義された変数です:

task dist(type: Zip) { 
    from war.outputs.files 
    from "src/staging/Procfile" // this file allows us to control how ElasticBeanstalk starts up our app on its Java SE platform 
    from('./.ebextensions') { 
     into '.ebextensions' 
    } 
    rename { String fileName -> 
     if (fileName == "${projectName}-${projectVersion}.war".toString()) { 
      fileName.replace("${projectName}-${projectVersion}", "application") 
     } else { 
      fileName 
     } 
    } 
} 
dist.dependsOn assemble 

のsrc /ステージングでProcfileの内容は次のようになります。ここで

web: java -jar application.war 
1

src/main/ebextensionsフォルダをsrc/main/resources/.ebextensionsに移動すると、自動的にjarタスクによって.jarのルートにコピーされます(他のファイルとともに/ EBSが期待するところでは、追加のスクリプティングは必要ありません)。

それはあなたが得ることができるほど清潔です!

0

私のプロジェクトのルートに私の.ebextensionsがあります。これは私のために働くようです。

関連する問題