我正在用 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 个不同的子项目中。