文字

基于源代码运行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命令运行和配置。

将符合规范的项目创建完成后,按照新建应用的步骤操作,当代码提交完成后,平台就能够识别出项目所使用的语言来。如下图所示:

启动

项目构建完成后,如果没有问题就可以启动了。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

上一篇: 下一篇:
  页面正在加载中