2016-09-20 4 views
2

1.11.28과 같은 AWS SDK의 최신 버전의 경우 paven.xml에 무엇을 넣어 Maven에서 모든 것을 짜고 컴파일 할 수 있습니까? 이 주제는 여러 곳에서 논의되었지만 찾을 수있는 모든 대답은 YEARS OLD이며 AWS SDK의 고대 버전에 대해서만 사용할 수 있습니다.Maven을 구성하여 현재 AWS SWF 코드를 컴파일하는 방법

How to consume Amazon SWF < - 이것은 AWS 1.3.3에 대한 확실한 답변이며, 답변 중 하나는 1.9.x를 암시하지만, 아직 세입니다.

http://www.ana-todor.ro/using-the-aws-flow-java-framework-with-intellij-idea-and-maven/ < -이 마법처럼 작동하지만 치아의 AWS 1.7 등 인터넷 검색 후 AspectJ를

답변

2

의 이전 버전, 읽기, 숙고, 시행 착오, 그리고 갊이 있으리라, 나는 지금이 AWS SDK 버전 1.11.35 용 SWF 기반 응용 프로그램을 성공적으로 컴파일하는 POM (필자는 Java 1.7에서 이것을 사용합니다). 버전 번호를 제대로 얻는 것에 그다지 많은 것이 아니었지만 구성 요소의 정확한 이름을 얻는 것이 더 낫습니다 (아마존은 최근 몇 년 동안 SDK가 한 번 이상 구성되는 방식을 변경 한 것 같습니다). 여기에 있습니다 :

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>groupid</groupId> 
    <artifactId>myproj</artifactId> 
    <version>1.01</version> 
    <name>MyProjName</name> 

    <properties> 
    <target.dir>target</target.dir> 
    <annotations.dir>${target.dir}/generated-sources/annotations</annotations.dir> 
    <aws.version>1.11.35</aws.version> 
    <flow.tools.name>aws-swf-build-tools</flow.tools.name> 
    <flow.tools.version>1.0</flow.tools.version> 
    <freemarker.version>2.3.25-incubating</freemarker.version> 
    <aspectj-runtime.version>1.7.4</aspectj-runtime.version> 
    <aspectj-maven-plugin.version>1.8</aspectj-maven-plugin.version> 
    <compliance.level>1.7</compliance.level> 
    </properties> 

    <dependencies> 
    <!-- dependencies for AWS Flow --> 
    <dependency> 
     <groupId>com.amazonaws</groupId> 
     <artifactId>aws-java-sdk</artifactId> 
     <version>${aws.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>com.amazonaws</groupId> 
     <artifactId>${flow.tools.name}</artifactId> 
     <version>${flow.tools.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-configuration</groupId> 
     <artifactId>commons-configuration</artifactId> 
     <version>1.9</version> 
    </dependency> 

    <!-- Dependencies for preprocessing SWF's @annotations: --> 
    <dependency> 
     <groupId>org.freemarker</groupId> 
     <artifactId>freemarker</artifactId> 
     <version>${freemarker.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>aspectjrt</artifactId> 
     <version>${aspectj-runtime.version}</version> 
     <optional>true</optional> 
    </dependency> 

    </dependencies> 

    <build> 
    <plugins> 

     <!-- Use a standalone annotation processor --> 
     <plugin> 
    <groupId>com.mysema.maven</groupId> 
    <artifactId>apt-maven-plugin</artifactId> 
    <version>1.1.3</version> 
    <executions> 
     <execution> 
     <goals> 
      <goal>process</goal> 
     </goals> 
     <configuration> 
      <outputDirectory>${annotations.dir}</outputDirectory> 
      <processor> 
       com.amazonaws.eclipse.simpleworkflow.asynchrony.annotationprocessor.AsynchronyDeciderAnnotationProcessor 
      </processor> 
     </configuration> 
     </execution> 
    </executions> 
    <dependencies> 
     <dependency> 
      <groupId>com.amazonaws</groupId> 
      <artifactId>${flow.tools.name}</artifactId> 
      <version>${flow.tools.version}</version> 
      </dependency> 
     <dependency> 
     <groupId>com.amazonaws</groupId> 
     <artifactId>aws-java-sdk</artifactId> 
     <version>${aws.version}</version> 
     </dependency> 
     <dependency> 
     <groupId>org.freemarker</groupId> 
     <artifactId>freemarker</artifactId> 
     <version>${freemarker.version}</version> 
     </dependency> 
     <dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-lang3</artifactId> 
     <version>3.3.2</version> 
     </dependency> 
    </dependencies> 
     </plugin> 

     <!-- Tell Maven NOT to do any annotation processing: --> 
     <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.2</version> 
    <configuration> 
     <compilerArgument>-proc:none</compilerArgument> 
     <compilerArguments> 
     <Xmaxerrs>5</Xmaxerrs> 
     </compilerArguments>   
     <source>${compliance.level}</source> 
     <target>${compliance.level}</target> 
    </configuration> 
     </plugin> 

     <!-- Enable weaving via AspectJ: --> 
     <plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>aspectj-maven-plugin</artifactId> 
    <version>${aspectj-maven-plugin.version}</version> 
    <dependencies> 
     <!-- Include this in order to keep aspectjrt consistent across all dependencies: --> 
     <dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>aspectjtools</artifactId> 
     <version>${aspectj-runtime.version}</version> 
     </dependency> 
    </dependencies> 
    <configuration> 
     <complianceLevel>${compliance.level}</complianceLevel> 
     <showWeaveInfo>true</showWeaveInfo> 
     <verbose>true</verbose> 
     <source>${compliance.level}</source> 
     <target>${compliance.level}</target> 
     <aspectLibraries> 
     <aspectLibrary> 
      <groupId>com.amazonaws</groupId> 
      <artifactId>aws-java-sdk</artifactId> 
     </aspectLibrary> 
      <aspectLibrary> 
       <groupId>com.amazonaws</groupId> 
      <artifactId>aws-java-sdk-swf-libraries</artifactId> 
      </aspectLibrary> 
     </aspectLibraries> 
     <sources> 
     <source> 
      <basedir>${annotations.dir}</basedir> 
     </source> 
     <source> 
      <basedir>src/main/java</basedir> 
     </source> 
     </sources> 
    </configuration> 
    <executions> 
     <execution> 
     <goals> 
      <goal>compile</goal> <!-- use this goal to weave all your main classes --> 
      <goal>test-compile</goal> <!-- use this goal to weave all your test classes --> 
     </goals> 
     </execution> 
    </executions> 
     </plugin> 

    </plugins> 
    </build> 

</project>