pom.xml 10.18 KiB
<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>
    <artifactId>common-api-rest-service</artifactId>
    <packaging>pom</packaging>
    <parent>
        <groupId>br.puc-rio.tecgraf.ibase.v2</groupId>
        <version>3.1.2-SNAPSHOT</version>
        <artifactId>common-rest-service</artifactId>
    </parent>
    <modules>
        <module>algorithm-rest-service</module>
        <module>application-rest-service</module>
        <module>authentication-rest-service</module>
        <module>client-launcher-rest-service</module>
        <module>execution-node-rest-service</module>
        <module>job-rest-service</module>
        <module>project-rest-service</module>
        <module>user-rest-service</module>
    </modules>
    <properties>
        <swagger.output.target>${basedir}/swagger</swagger.output.target>
        <swagger.output.directory>${swagger.output.target}/generated-sources
        </swagger.output.directory>
        <maven.javadoc.skip>true</maven.javadoc.skip>
        <swagger.input.file>
            ${basedir}/src/main/resources/swagger/${ibase.swagger.file}
        </swagger.input.file>
        <swagger.remove.import.1>
            com.sun.jersey.core.header.FormDataContentDisposition;
        </swagger.remove.import.1>
        <swagger.add.import.1>
            org.glassfish.jersey.media.multipart.FormDataContentDisposition;
        </swagger.add.import.1>
        <swagger.remove.import.2>com.sun.jersey.multipart.FormDataParam;
        </swagger.remove.import.2>
        <swagger.add.import.2>
            org.glassfish.jersey.media.multipart.FormDataParam;
        </swagger.add.import.2>
        <!-- propriedades a redefinir nos poms-filhos -->
        <ibase.swagger.file />
        <ibase.service.name />
        <ibase.service.version />
    </properties>
    <dependencies>
        <!-- Javautils -->
        <dependency>
            <groupId>br.puc-rio.tecgraf.javautils</groupId>
            <artifactId>javautils-core</artifactId>
            <version>2.0.0</version>
        </dependency>
        <!-- Rest -->
        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>javax.ws.rs-api</artifactId>
            <version>2.0.1</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.8.5</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-multipart</artifactId>
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
<version>${jersey.version}</version> </dependency> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson</artifactId> <version>${jersey.version}</version> </dependency> <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-client</artifactId> <version>${jersey.version}</version> </dependency> <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-server</artifactId> <version>${jersey.version}</version> </dependency> <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-common</artifactId> <version>${jersey.version}</version> </dependency> <dependency> <groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-servlet-core</artifactId> <version>${jersey.version}</version> </dependency> <dependency> <groupId>com.sun.jersey.contribs</groupId> <artifactId>jersey-multipart</artifactId> <version>1.19.3</version> </dependency> <!-- Swagger --> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> <version>1.5.10</version> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-jersey2-jaxrs</artifactId> <version>1.5.10</version> </dependency> <!-- Junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.6</version> </dependency> <dependency> <groupId>com.github.tomakehurst</groupId> <artifactId>wiremock</artifactId> <version>2.19.0</version> <scope>test</scope> </dependency> </dependencies> <build> <pluginManagement> <plugins> <!-- Adiciona no clean o diretório de geração das classes do swagger --> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.0.0</version>
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
<configuration> <filesets> <fileset> <directory>${swagger.output.target}</directory> </fileset> </filesets> </configuration> </plugin> <!-- Gera o código java a partir da especificação Swagger --> <plugin> <groupId>io.swagger</groupId> <artifactId>swagger-codegen-maven-plugin</artifactId> <version>2.2.1</version> <executions> <execution> <goals> <goal>generate</goal> </goals> <configuration> <inputSpec>${swagger.input.file}</inputSpec> <language>jaxrs</language> <modelPackage> ibase.rest.model.${ibase.service.name}.${ibase.service.version} </modelPackage> <apiPackage> ibase.rest.api.${ibase.service.name}.${ibase.service.version} </apiPackage> <addCompileSourceRoot>false </addCompileSourceRoot> <configOptions> <sourceFolder>api</sourceFolder> </configOptions> <output>${swagger.output.directory}</output> <environmentVariables> <!-- generate all models --> <models /> <!-- generate all APIs --> <apis /> <supportingFiles> ApiException.java,NotFoundException.java,ApiResponseMessage.java </supportingFiles> </environmentVariables> </configuration> </execution> </executions> </plugin> <!-- Substitui o import nas classes geradas do Swagger --> <plugin> <groupId>com.google.code.maven-replacer-plugin</groupId> <artifactId>replacer</artifactId> <version>1.5.3</version> <executions> <execution> <phase>process-sources</phase> <goals> <goal>replace</goal> </goals> </execution> </executions> <configuration> <includes> <include>${swagger.output.directory}/**/*.java </include> </includes> <replacements> <replacement> <token>import ${swagger.remove.import.1}</token> <value>import ${swagger.add.import.1}</value> </replacement> <replacement>
211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
<token>import ${swagger.remove.import.2}</token> <value>import ${swagger.add.import.2}</value> </replacement> </replacements> </configuration> </plugin> <!-- Adiciona como source o diretório ondo as classes da API foram geradas --> <!-- Note que o diretório com as factories e as classes de implementação não são usadas como source pois fazem parte do que cada projeto deve implementar. --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>1.10</version> <executions> <execution> <id>add-source</id> <phase>generate-resources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>${swagger.output.directory}/api </source> </sources> </configuration> </execution> </executions> </plugin> </plugins> </pluginManagement> </build> </project>