這裏是我所做的: -
- 安裝V6.9的NodeJS +
- 運行NPM安裝@角/ CLI -g對角CLI
- 安裝Apache Maven或使用任何Maven友好的IDE
- 使用您所需的Maven配置,我使用了簡單的webapp(WAR)。
指南Stucture(除ngapp夾其餘部分是標準的Maven結構。)
ngfirst
├── pom.xml
├── src
│ └── main
│ ├── java
│ ├── resources
│ ├── webapp
│ └── ngapp
角部位
打開ngapp在終端文件夾並鍵入納克init命令初始化節點和npm配置上,其結果將是一個簡單的Angular2示例應用程序將ngapp文件夾內的目錄結構如下: -
├── angular-cli.json
├── e2e
├── karma.conf.js
├── node_modules
├── package.json
├── protractor.conf.js
├── README.md
├── tslint.json
├── src
├── app
├── assets
├── environments
├── favicon.ico
├── index.html
├── main.ts
├── polyfills.ts
├── styles.css
├── test.ts
└── tsconfig.json
這種結構是Maven項目結構的角度相當於和SRC目錄是角應用程序的源代碼,就像maven build命令在目標文件夾中產生其輸出,ng build命令在dist文件夾中產生其輸出。
爲了封裝內的Maven所產生的角應用程序生成WAR修改構建配置以從DIST更改輸出文件夾到web應用,開放角cli.json文件並修改其OUTDIR如下: -
"outDir": "../webapp/ng"
此時納克建立命令會產生內建成納克目錄 ngfirst/src目錄的角應用/主/ webapp文件夾。
Maven的部分
開放的pom.xml,並配置以下三個Maven插件: -
- 編譯器插件:沒有Java的東西來編譯/ src目錄/主/ ngapp文件夾,排除它。
- war-plugin:/ src/main/ngapp是Angular項目文件夾,它不應該打包成WAR,排除它。
- exec-plugin:執行NPM Install和Angular-CLI構建命令以在webapp文件夾中生成Angular Application以進行最終打包。注意--base-href參數,它需要從webapp的上下文路徑加載Angular資源。
這是應該的樣子: -
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<excludes>
<exclude>ngapp/**</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<excludes>
<exclude>ngapp/**</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.5.0</version>
<executions>
<execution>
<id>exec-npm-install</id>
<phase>generate-sources</phase>
<configuration>
<workingDirectory>${project.basedir}/src/main/ngapp</workingDirectory>
<executable>npm</executable>
<arguments>
<argument>install</argument>
</arguments>
</configuration>
<goals>
<goal>exec</goal>
</goals>
</execution>
<execution>
<id>exec-npm-ng-build</id>
<phase>generate-sources</phase>
<configuration>
<workingDirectory>${project.basedir}/src/main/ngapp</workingDirectory>
<executable>ng</executable>
<arguments>
<argument>build</argument>
<argument>--base-href=/ngfirst/ng/</argument>
</arguments>
</configuration>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
大廈Maven項目(與角應用程序也是如此)
打開終端,在項目的根文件夾ngfirst和運行MVN包命令,這將生成一個WAR文件(ngfirst.war)目標文件夾。
部署ngfirst.war在一個容器中,在瀏覽器中打開http://localhost:8080/ngfirst/ng/index.html。 (如果需要,調整您的主機名和端口)
如果一切正常,您應該看到應用程序的作品!在瀏覽器中,這是在工作中的角度應用程序!
JSP預加工
我們可以利用與角應用JSP技術的動態配置和頁面渲染能力,角SPA是由Java容器作爲普通的HTML網頁中投放,的index.html在這個如果我們配置JSP Engine來預處理HTML文件,那麼所有的JSP魔術都可以包含在Angular SPA頁面中,只需在網頁內包含以下內容即可。XML
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
保存,重建Maven項目,部署WAR瞧!
我建立我的應用程序使用彈簧引導,我們爲angular2罐。對於示例請參閱https://github.com/Kiran-N/springboot-and-angular2 – Developer
有類似的任務,這裏是我的方法http://stackoverflow.com/questions/37512154/configure-angular-2-project-with -maven-and-spring-rest/42283956#42283956 –