本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定使用 的 Apache Maven 專案 AWS SDK for Java 2.x
您可以使用 Apache Maven
先決條件
若要搭配 Maven 使用適用於 Java 的 SDK 2.x,您需要下列項目:
-
Java 8.0 或更新版本。您可以從 http://www.oracle.com/technetwork/java/javase/downloads/
下載最新的 Java SE 開發套件軟體。適用於 Java 的 SDK 2.x 也適用於 OpenJDK Amazon Corretto和 Open Java 開發套件 (OpenJDK) 的發行版本。從 https://openjdk.java.net/install/index.html 下載最新版本的 OpenJDK。從 Corretto 頁面 下載最新的 Amazon Corretto 8 或 Amazon Corretto 11 版本。 -
Apache Maven。如果您需要安裝 Maven,請前往 http://maven.apache.org/
下載並安裝。
建立 Maven 專案
若要從命令列建立 Maven 專案,請從終端機或命令提示字元視窗執行下列命令。
mvn -B archetype:generate \ -DarchetypeGroupId=software.amazon.awssdk \ -DarchetypeArtifactId=archetype-lambda -Dservice=s3 -Dregion=US_WEST_2 \ -DarchetypeVersion=
2.X.X
\ -DgroupId=com.example.myapp \ -DartifactId=myapp
注意
將 com.example.myapp 更換為您應用程式的完整套件命名空間。亦請將 myapp 更換為您的專案名稱。這會成為您專案的目錄名稱。
若要使用最新版本的原型,請將 2.X.X 取代
為 Maven 中央的最新版本
此命令會使用原型範本化工具組建立 Maven 專案。原型會為 AWS Lambda 函數處理常式專案 產生 scaffolding。此專案原型已預先設定為使用 Java SE 8 編譯,並包含對使用 指定之適用於 Java 2.x 的 SDK 版本的相依性。 -DarchetypeVersion
如需建立和設定 Maven 專案的詳細資訊,請參閱 Maven 入門指南
設定適用於 Maven 的 Java 編譯器
如果您如先前所述使用 AWS Lambda 專案原型建立專案,Java 編譯器的組態已為您完成。
若要驗證此組態是否存在,請從您執行上一個指令時所建立的專案資料夾中 (例如 myapp
),開啟 pom.xml
檔案開始。查看第 11 行和第 12 行中此 Maven 專案的 Java 編譯器版本設定,以及在第 71 至 75 行中必須包含的 Maven 編譯器外掛程式。
<project> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven.compiler.plugin.version}</version> </plugin> </plugins> </build> </project>
如果您使用不同的原型或使用其他方法建立專案,則必須確保 Maven 編譯器外掛程式是組建的一部分,並且其來源和目標屬性在 pom.xml
檔案中都設定為 1.8。
請參閱上一個程式碼片段,以了解設定這些必要設定的一種方法。
或者,您也可以使用外掛程式宣告設定編譯器組態內嵌,如下所示。
<project> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>
將開發套件宣告為相依性
若要在專案 適用於 Java 的 AWS SDK 中使用 ,您需要在專案的 pom.xml
檔案中將其宣告為相依性。
如果您如先前所述使用專案原型建立專案,則 SDK 的最新版本已在專案中設定為相依性。
原型會為software.amazon.awssdk
群組 ID 產生 BOM (物料帳單) 成品相依性。使用 BOM,您不需要為共用相同群組 ID 的個別成品相依性指定 maven 版本。
如以不同方式建立 Maven 專案,請確保 pom.xml
檔案包含以下內容,以為專案設定開發套件的最新版本。
<project> <properties> <aws.java.sdk.version>
2.X.X
</aws.java.sdk.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>${aws.java.sdk.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> </project>
注意
將 pom.xml
檔案中的 2.X.X
取代為最新版本的 AWS SDK for Java 2.x
設定開發套件模組的相依性
現在您已設定 SDK,您可以為一或多個要在專案中使用的 適用於 Java 的 AWS SDK 模組新增相依性。
雖然您可以指定每個元件的版本編號,但您不需要 ,因為您已在 dependencyManagement
區段中使用物料清單成品宣告 SDK 版本。若要載入指定模組的不同版本,請指定其相依性的版本編號。
如果您使用上述的專案原型建立專案,您的專案已設定多個相依性。這些包括 AWS Lambda 函數處理常式和 Amazon S3 的相依性,如下所示。
<project> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>s3</artifactId> <exclusions> <exclusion> <groupId>software.amazon.awssdk</groupId> <artifactId>netty-nio-client</artifactId> </exclusion> <exclusion> <groupId>software.amazon.awssdk</groupId> <artifactId>apache-client</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>url-connection-client</artifactId> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-lambda-java-core</artifactId> <version>${aws.lambda.java.version}</version> </dependency> </dependencies> </project>
注意
在上述pom.xml
範例中,相依性來自不同的 groupId
。s3
相依性來自 software.amazon.awssdk
,aws-lambda-java-core
而相依性來自 com.amazonaws
。BOM 相依性管理組態會影響 的成品software.amazon.awssdk
,因此aws-lambda-java-core
成品需要版本。
對於使用適用於 Java 的 SDK 2.x 開發 Lambda 函數處理常式, aws-lambda-java-core
是正確的相依性。不過,如果您的應用程式需要使用 listFunctions
、、 deleteFunction
invokeFunction
和 等操作來管理 Lambda 資源createFunction
,您的應用程式需要下列相依性。
<groupId>software.amazon.awssdk</groupId> <artifactId>lambda</artifactId>
注意
s3
相依性會排除 netty-nio-client
和可apache-client
轉移相依性。原型會取代其中一個 HTTP 用戶端,包括url-connection-client
相依性,這有助於降低函數的 AWS Lambda 啟動延遲。
將模組新增至專案,以取得專案所需的 AWS 服務 和 功能。由 BOM 管理的 適用於 Java 的 AWS SDK 模組 (相依性) 會列在 Maven 中央儲存庫
注意
您可以在程式碼範例中查看 pom.xml
檔案,以判斷專案需要的相依性。例如,如果您對 DynamoDB 服務的相依性感興趣,請參閱 GitHub 上AWS 程式碼範例儲存庫pom.xml
檔案。)
在專案中建立整個開發套件
若要最佳化您的應用程式,強烈建議您只提取所需元件,不要提取整個開發套件。不過,若要在專案 適用於 Java 的 AWS SDK 中建置整個 ,請在您的 pom.xml
檔案中宣告它,如下所示。
<project> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>aws-sdk-java</artifactId> <version>
2.X.X
</version> </dependency> </dependencies> </project>
建立專案
設定 pom.xml
檔案後,您就可以使用 Maven 建立您的專案。
若要從命令列建立 Maven 專案,請開啟終端機或命令提示視窗,導覽至您的專案目錄 (例如 myapp
),輸入或貼上以下命令,然後按 Enter 或 Return。
mvn package
這會在 target
目錄中建立單一 .jar
檔案 (JAR) (例如 myapp/target
)。此 JAR 包含您在 pom.xml
檔案中指定為相依性的所有開發套件模組。