java restful services as jar依赖于war

时间:2016-10-03 04:52:15

标签: java rest maven maven-2 maven-plugin

我在一个项目中有两个不同的maven模块,一个是带有角度js东西的ui模块和一个带有jersey的宁静web服务的服务模块。我的问题是,无论如何,我可以将此服务模块作为依赖项添加到pom.xml中的ui模块,并将其作为服务从ui模块中使用。这里的想法是不将两者都作为不同的战争部署,而是作为一个部署。

2 个答案:

答案 0 :(得分:1)

您可以将服务模块生成为JAR。 pom.xml应该包含:

<packaging>jar</packaging>

并且

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <descriptorRefs>
        <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>install</phase>
            <goals>
                <goal>single</goal>
        </goals>
        </execution>
    </executions>
</plugin>

在主项目中创建libs文件夹并将生成的JAR文件放在那里。主项目pom.xml应包含:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-install-plugin</artifactId>
        <version>2.5.2</version>
        <executions>
            <execution>
            <id>install-external</id>
            <phase>clean</phase>
            <configuration>
                <file>${basedir}/libs/your_service.jar</file>
                <repositoryLayout>default</repositoryLayout>
                <groupId>your_service</groupId>
                <artifactId>your_service</artifactId>
                <version>1.0</version>
                <packaging>jar</packaging>
                <generatePom>true</generatePom>
            </configuration>
            <goals>
                <goal>install-file</goal>
            </goals>
            </execution>
        </executions>
    </plugin>

<!-- External lib -->
<dependency>
    <groupId>your_service</groupId>
    <artifactId>your_service</artifactId>
    <version>1.0</version>
    <!-- <systemPath>${basedir}/libs/your_service.jar</systemPath> -->
    <!-- <scope>system</scope> -->
</dependency>

答案 1 :(得分:0)

这是我在我的几个项目中所做的,

1.首先创建一个空白项目,该项目使用modules标记作为UI和服务组件/项目的容器/父项。您在其中指定了module。你可以称之为APP。

要构建项目,您需要构建APP,然后构建两个模块并将APP部署到服务器。

这只是一个只有pom.xml

的空白Maven项目

packaging

中将war指定为pom.xml

2.将服务项目指定为UI项目的dependency

3.在服务和UI项目中将APP项目指定为parent

希望这会有所帮助!!