我正在使用maven构建我的Web服务项目。
在我的pom.xml中,我有:
<packaging>war</packaging>
这导致我的.war部署在nexus中。
但是我还想使用builder-helper-maven-plugin从这个项目的类子集中提取一个jar:
创建jar,导致在target中创建ws-webservice.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>
使用此配置,只有.jar部署在nexus中,并且不再部署战争。
有什么想法?`
修改
我设法使用
将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。 当然,在这种情况下,分类器是强制性的。
好的方法可能是在两个不同的子项目中包含dao层和webservice的maven父项目。