### 基于源代码运行java-maven应用
#### **语言支持**
好雨云平台支持java-maven项目的运行。如果对maven不太了解可以先熟悉一下基本的maven知识。maven项目通过pom.xml文件来进行项目的依赖管理,好雨平台也通过pom.xml来检测出项目的语言类型。
#### **项目运行的各软件版本**
| 组建 | 配置名 | 支持的值 | 默认值 |
| -- | -- | -- | -- |
| JDK | java.runtime.version | 1.6, 1.7, 1.8,1.9 | 1.8 |
| MAVEN | maven.version | 3.0.5, 3.1.1, 3.2.5,3.3.1 | 3.3.1 |
| TOMCAT | tomcat.version | 6.0.41, 7.0.56, 8.0.14 | 7.0.56 |
#### **创建maven-web项目**
可以使用maven命令
~~~
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
~~~
~~~
mvn archetype:generate 固定格式
-DgroupId 组织标识(包名)
-DartifactId 项目名称
-DarchetypeArtifactId 指定ArchetypeId,maven-archetype-quickstart,创建一个Java Project;maven-archetype-webapp,创建一个Web Project
-DinteractiveMode 是否使用交互模式
~~~
也可以使用IDE(eclipse、Intellij Idea)来创建maven-web项目,注意选择**maven-archetype-webapp** 这样才能创建web项目。
#### **运行依赖**
**maven-war-plugin**
平台检测出项目为maven项目后,在构建阶段会将代码进行打包操作,所以在pom文件中需要加入能够打包项目为war包的插件。平台需要将项目打包成war包后执行,所以需要加上`maven-war-plugin`
示例如下:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<warName>java-hello</warName>
</configuration>
</plugin>
</plugins>
</build>
**webapp-runner**
对于java-web的项目好雨平台默认使用webapp-runner来启动程序,所以还应该在程序中加入如下配置。
~~~
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.github.jsimone</groupId>
<artifactId>webapp-runner</artifactId>
<version>8.0.33.1</version>
<destFileName>webapp-runner.jar</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
~~~
**`注意`**
如果没有加上web-runner插件会在日志中显示:
` Error: Unable to access jarfile target/dependency/webapp-runner`
的错误。
Webapp Runner可以在任何安装有JRE环境的系统中利用Tomcat将应用程序启动。使用Webapp Runner不需要安装Tomcat。它只是一个jar文件可以用java命令运行和配置。
将符合规范的项目创建完成后,按照**新建应用**的步骤操作,当代码提交完成后,平台就能够识别出项目所使用的语言来。如下图所示:
![](https://box.kancloud.cn/2016-08-09_57a9558e7ef0a.png)
#### **启动**
项目构建完成后,如果没有问题就可以启动了。java-maven项目会默认使用webapp-runner运行。除此以外,用户还可以根据自己的需求,编写Procfile。
Procfile是一种帮助用户在云平台上将自己编写的程序运行起来的描述文件。我们也可以创建Procfile,并在里面编写运行命令。如
~~~
web: java $JAVA_OPTS -jar target/dependency/webapp-runner.jar --port $PORT target/*.war
~~~
`Procfile需要位于项目的根目录下`
>####**`注意`**
>在平台上并不是所有的开发语言都需要写 Procfile文件,我们尽量让用户做得最少且不改变已有的开发习惯。但针对特殊情况目前还是需要用户简单设置一下。
>部分语言的web应用我们会用默认的命令行启动,但如果用户有需求,可以自己设置运行命令,如php语言默认是apache启动的,如果用户需要用nginx启动,可以在代码根目录创建Procfile文件,并添加启动命令:web: vendor/bin/heroku-php-nginx
- 介绍
- 从这里开始
- 注册
- 登陆
- 云帮界面
- 功能介绍
- 新增应用
- 从镜像
- 从源码
- 应用市场
- 应用框架
- 我的应用
- 界面介绍
- 应用控制台
- 概览
- 依赖
- 监控
- 日志
- 设置
- 费用
- 端口
- 存储
- 扩容
- 总览
- 团队
- 财务中心
- 帐户充值
- 应用扣费
- 批量续费
- 语言支持
- 概述
- Java
- java-maven
- java-war
- java-jar
- web程序部署
- 使用Webapp Runner部署
- 使用Jetty Runner部署
- 示例代码
- gradle
- Scala
- play
- Ruby
- 语言支持
- ruby应用部署
- Rails 应用概述
- 部署Rails3.x应用
- 使用Puma 部署 Rails 应用
- 示例代码
- Python
- 语言支持
- Web框架支持
- 示例代码
- PHP
- 平台特性
- 语言支持
- 运行环境设置与调优
- 部署ThinkPHP框架程序
- 示例代码
- Go
- 语言支持
- 部署Beego等框架程序
- 示例代码
- Node.JS
- 语言支持
- 示例代码
- Html
- 语言支持
- 示例代码
- Dockerfile
- 语言支持
- 示例代码
- 相关文档
- Procfile
- Cron计划任务
- 参考知识
- 好雨Gogs使用说明
- Artifactory对接本地仓库
- 好雨如何对接Git Server
- Git使用技巧
- 服务框架支持
- dubbo
- springcloud
- 技术支持