normalian blog

Let's talk about Microsoft Azure, ASP.NET and Java!

Azure Toolkit for Eclipse の2016/3/6 更新と Maven プロジェクトを WebApps にデプロイする方法

2016年3月7日に Azure Toolkit for Eclipse がリリースされた。主なインストール手順は Azure Toolkit for Eclipse のインストール に記載があるので詳細は不要だと認識してるが、同更新での主な追加機能は以下となる。

  • Java の Web アプリ( Tomcat or Jetty で動くアプリ )を Azure Web Apps にデプロイできる!
  • ② Azure Explorer ビューを利用して WebApps の操作ができる!
  • クラウドサービスにデプロイ向けの Tomcat, Jetty, Zulu OpenJDK がサポートするバージョンを更新

上記の機能を簡単に紹介しよう。

① Azure Web Apps へのデプロイ

ずっとクラウドサービスにしかデプロイできなかったので悲しい気持ちになっていたが、ようやく WebApps のデプロイが可能になった。「Dynamic Web Project」形式で新規作成したプロジェクトに対し、右クリックのメニューから Azure - Plublish as Azure Web App... を選択することでデプロイ可能だ。
以下の様に API Apps も含めてごそっとでるが、ランタイムが JRE になっているものを選択してデプロイしよう。
f:id:waritohutsu:20160317173129p:plain
「Deploy to root」を選択すると ROOT.war の名前にリネームしてデプロイしてくれる点も便利だ。

② Azure Explorer ビューを利用する!

以下のノリで Eclipse のビューから Web Apps、ストレージ、サブスクリプションの簡易的な操作ができる。
f:id:waritohutsu:20160317173138p:plain


Tomcat, Jetty, Zulu OpenJDK がサポートするバージョンを更新

Tomcat, Jetty は以下のバージョンが利用可能。
f:id:waritohutsu:20160317173143p:plain
Zulu OpenJDK の最新版は以下となる。
f:id:waritohutsu:20160317173152p:plain

Azure Web Apps へ Maven 形式のプロジェクトをデプロイする方法

さて、冒頭で「Dynamic Web Project 形式で新規作成」という記載をしたが、まっとうな Java プロジェクトならば Gradle なり Maven なりを利用しているのが普通だろう。参考のために Maven プロジェクトを Azure Web Apps にデプロイする TIPS を紹介しておく。

まずは、以下の様に Maven 形式の Web アプリのプロジェクトを作成し、Eclipse 形式のファイルを生成する。

C:\opt\workspace>mvn archetype:generate -DgroupId=com.mydomain.deploy2webapp -DartifactId=Deploy2AzureWebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
C:\opt\workspace>cd Deploy2AzureWebApp
C:\opt\workspace\Deploy2AzureWebApp>mvn eclipse:eclipse

次に、Eclipse に生成したプロジェクトをインポートする。この時点では右クリックメニューの Azure が存在しないので、右クリックメニューから「Properties」を選択し、以下のステップに従って設定を行う。
f:id:waritohutsu:20160317175118p:plain
左ツリーから Project Facets を選択し、Convert to faceted from.. を選択し、Dynamic Web Module にチェックボックスを追加した後、Further configuration available... を押下し、content directory: を Maven プロジェクトの形式に合わせた src/main/webapp に変更する。

上記の実施後に *.jsp ファイルに対して「The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path」エラーが発生するので、以下の画面に従って Tomcat(または Jetty )のサーバーランタイムを追加する。
f:id:waritohutsu:20160317175226p:plain

以上を実施すればプロジェクトの右クリックメニューに Azure が追加されるので、無事に Azure Web Apps にデプロイできるようになる。

現場からは以上だ(`・ω・´)ゞ