云计算-Setting-up Maven in Cloud9(在Cloud9中设置Maven)

Installing Maven(安装Maven)

        现在,了解如何使用AWS SDK来访问AWS产品。这并不简单。为了简化操作,我们将使用Apache Maven工具。Maven维护一组构建脚本,使我们能够构建程序,包括最新的SDK库,并提高程序在空间和加载时间方面的效率。例如,我们将使用Maven脚本仅包含代码中使用的类,这大大减少了程序的大小,从而减少了加载时间和存储空间,降低了AWS成本。

        首先,你应该通过以下命令检查是否已安装Maven:

mvn -version

        如果已经安装了Maven,则可以跳过整个主题。如果未安装Maven,将显示输出“mvn: command not found”。

        以下三条命令将安装最新版本的Maven:

sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo

        上述命令通常不会显示任何输出。最后,我们使用以下命令安装Maven:

sudo yum install -y apache-maven

        上述命令将生成大量输出。输入以下命令查看是否安装正确:

mvn -version

        输出将显示类似以下内容:

Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T07:58:13Z)
Maven home: /usr/share/apache-maven
Java version: 1.8.0_312, vendor: Red Hat, Inc.
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.amzn2.0.2.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.14.268-205.500.amzn2.x86_64", arch: "amd64", family: "unix"

        至此,Maven安装完成。

Creating First Java App with AWS(创建第一个Java应用程序并使用AWS)

        一旦安装了Maven,我们可以运行以下命令来创建一个新的Java应用程序。Maven的一个有用选项是它可以为Java项目设置目录结构。我们可以用一个简单的命令设置一个项目:

mvn -B archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=au.edu.scu.app -DartifactId=myapp

        此命令在当前目录中设置了一个项目,包含多个嵌套目录,如下图所示,展开所有文件夹后,文件树窗口显示如下:

        尽管这看起来很复杂,但这是Java项目的标准结构。注意有一个‘main’文件夹结构和一个‘test’文件夹结构。高亮显示的文件pom.xml是Maven的配置文件,我们需要编辑它以指导Maven如何构建我们的项目。我们自动生成了三个源文件:

  • App.java - Java程序主文件(包含main()函数)
  • AppTest.java - 用于执行单元测试的Java程序
  • pom.xml - Maven项目配置文件(上面已高亮显示)

        App.java中的Java程序如下:

package au.edu.scu.app;

public class App
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}

        注意Maven如何在第一行设置包名,这反映在目录结构中。再次强调,这是一个非常简单的Java“Hello World”程序。测试应用程序也是一个简单的结构,你可以在空闲时间查看。

Configuring POM File(配置POM文件)

        对我们来说,最重要的文件是pom.xml文件,其内容如下。pom代表“项目对象模型”。

        此文件提供有关如何构建和打包项目的重要信息。我们将向该文件添加许多额外的标签,例如添加AWS SDK库以访问AWS云产品。提供的信息包括以下标签:

  • <groupId> - 标准项目前缀
  • <artifactId> - 生成包的名称
  • <packaging> - 包含生成包的文件类型
  • <version> - 附加到生成包名称的版本
  • <dependencies> - 必须包含在生成包中的包

        我们将在使用AWS包时添加<dependency>标签。此POM文件仅包含junit依赖项,这是Java单元测试包。我们还需要添加用于AWS的依赖项,这些依赖项旨在重新组织我们的输出包。这些将有助于满足一些独特的AWS结构,例如AWS Lambdas不是程序而是云中执行的函数。AWS Lambdas将在单独的实验课中讨论。

        我们的第一步是用这个版本替换当前的pom.xml文件。

        确保你最初使用此配置。maven-compiler插件确保使用Java 1.8。依赖管理确保使用2.5版本的SDK,software.amazon.awssdk依赖项是我们将使用的2.5版本SDK的软件包前缀。在你的AWS开发中使用一致的版本非常重要,因为AWS SDK版本不兼容,例如,2.0版本不兼容2.5版本。

        请注意,未来我们还将访问我们程序使用的特定AWS SDK v2包。我们将在使用不同的AWS包和产品时向此文件添加<dependency>标签。此POM文件仅包含junit依赖项,这是Java单元测试包。我们还将添加用于AWS的依赖项,这些依赖项旨在重新组织我们的输出包。这些将有助于满足一些独特的AWS结构,例如AWS Lambdas不是程序而是云中执行的函数。

        要构建我们的程序,我们需要导航到pom.xml文件所在的目录。可以在bash终端中使用"cd myapp"命令执行此操作,当前pom.xml位于"myapp"目录中。

cd myapp

        然后我们运行以下命令来构建(以及编译)我们的程序。

mvn package

        这将在“myapp/target/”目录中生成一个可执行的JAR文件(即“myapp-1.0.jar”)。要运行此JAR文件,你需要将默认目录设置为项目的根目录,该目录包含maven将使用的pom.xml文件。目标目录中将有其他文件,这些文件用于构建JAR文件以及你可以运行的单元测试程序,如果你添加了单元测试。

        要运行JAR文件,可以使用以下命令:

java -cp target/myapp-1.0.jar au.edu.scu.app.App

        注意我们需要指定目录“target/”,因为这是Maven放置可执行代码的JAR文件的位置。这有点复杂,因为maven配置文件没有指定哪个类包含首先执行的main()函数。类名au.edu.scu.app.App是包含main()函数的类的完全限定名称(包含包名)。

Shade Plugin(Shade插件)

        为了解决上一节中提到的问题,我们可以使用maven shade插件。我们将在许多未来的示例中使用shade插件,但对于此示例,我们需要将以下插件定义添加到pom.xml文件中的<plugins>标签内。你可以将其放在“maven-compiler-plugin”定义之前。只需复制以下代码并粘贴到你的pom.xml中:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-shade-plugin</artifactId>
  <version>3.2.1</version>
  <executions>
    <execution>
      <phase>package</phase>
      <goals>
        <goal>shade</goal>
      </goals>
      <configuration>
        <transformers>
          <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
            <mainClass>au.edu.scu.app.App</mainClass>
          </transformer>
        </transformers>
      </configuration>
    </execution>
  </executions>
</plugin>

        shade插件通过修改JAR文件来指定主类,我们可以通过以下命令运行程序:

java -jar target/myapp-1.0.jar

        shade插件还有其他用途,我们将在后面看到。我们将使用它来构建各种Amazon服务所需的JAR文件,这些服务需要可执行代码,但不一定是可执行程序。

  • 20
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yamai Yuzuru

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值