1

我正在用 Maven 构建我的 Web 服务项目。

在我的 pom.xml 我有:

<packaging>war</packaging>

这导致我的 .war 部署在 nexus 中。

但我也想使用 builder-helper-maven-plugin 从这个项目的一个子集中提取一个 jar:

导致在 target 中创建 ws-webservice.jar 的 jar 创建:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.5</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <includes>
                    <include>org/xxx/ws/yyy/config/**/*</include>
                    <include>org/xxx/ws/yyy/domain/**/*</include>
                    <include>org/xxx/ws/yyy/jpa/**/*</include>
                </includes>
            </configuration>
        </plugin>

build-helper-maven-plugin 执行:

            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>attach-artfact</id>
                    <phase>package</phase>
                    <goals>
                        <goal>attach-artifact</goal>
                    </goals>
                    <configuration>
                        <artifacts>
                        <artifact>
                            <file>target/ws-webservice.jar</file>
                            <type>jar</type>
                        </artifact>
                        </artifacts>
                    </configuration>
                </execution>

有了这个配置,nexus中只部署了.jar,不再部署war。

有什么想法吗?

编辑

我设法将jar和战争部署到nexus使用

<artifact>
   <classifier>dao-jpa</classifier>
   <file>target/ws-webservice.jar</file>
   <type>jar</type>
</artifact>

这导致 ws-webservice-1.0.0-SNAPSHOT.war 和 ws-webservice-1.0.0-SNAPSHOT.dao-jpa.jar。当然,在这种情况下,分类器是强制性的。

好的方法可能是使用 maven 父项目,将 dao 层和 web 服务包含在 2 个不同的子项目中。

4

0 回答 0